2010-06-30 6 views
4

Я использую Twitter OAuth для входа в систему. Вход в систему позволяет пользователям подключаться к Твиттеру и при успешном выполнении OAuth возвращает их на указанный URL. Из этого URL-адреса я хотел бы перенаправить пользователей на страницу, на которой они были включены, прежде чем войти в систему.Django перенаправляет на предыдущую страницу после внешнего входа OAuth

Что такое хороший способ сделать это?

ответ

3

Два способ:

  1. Ремесла вашего OAuth URL поэтому он отправляет их обратно на нужную страницу, или по крайней мере говорит в строке запроса next=url. Это наиболее достоверно, но может сломаться (и выглядит неуверенно, но кто копирует и вставляет URL-адреса OAuth в любом случае?)

  2. Сохраните сеанс, содержащий последнюю запрошенную «настоящую» страницу. Я говорю «настоящий», потому что я не считаю страницы авторизации/регистрации реальными. Таким образом, каждый хит, проверьте, какой URL он включен, если он не связан с auth, сохраните его в сеансе. Когда они попадают на страницу OAuth-auccess, перенаправляйте их на значение сеанса. Это можно сделать в контексте процессора или промежуточного программного обеспечения. Требуется куки-файлы и выход из системы.

+0

Да, я делаю сессионную вещь. Просто установите request.session ['next'] = request.META ['HTTP_REFERER'] в моем режиме входа в систему перед тем, как перейти в Twitter. Я не думаю, что Twitter позволит мне добавить динамические запросы к моему обратному URL-адресу, хотя, возможно, я ошибаюсь в этом. – Steve

0

я использую URL перенаправления в твиттере URL аутентификации и его работе для меня ..

Смежные вопросы