Я новичок в сессиях Django, и я попытался создать файл cookie для входа на свой сайт. Пользователь на моем сайте регистрируется через социальный сайт (в этом случае пара), для этого у меня есть разные функции: Index
view, Login, LoginProcess
.Django: Правильно Настройка Cookies для входа
Информация:
Index
взгляд домашняя страница (127.0.0.1
), Login
функция перенаправляет пользователя LoginProcess
, в этом процессе, я поставил печенье.
request.set_cookie(key='logged', value=True)
request
является примером, что все 3 функции в моем коде, я поставил вошедший ключ к истинному, который должен быть прочитан функцией индекса.
Индекс Функция:
def index(request):
if request.COOKIES.get('logged') == True:
return HttpResponse("1 - User is logged in")
else:
return HttpResponse("0 - User is not logged in)
К сожалению, это вызывает утверждение 0 (Пользователь не авторизован), даже если я вошел в сайт, значение вошедшего ключа None
.
Проблема:
Index
функция не может обнаружить, что logged
печенье был зарегистрирован в LoginProcess
функции.
Вопрос:
Я собираюсь сохранить имя пользователя в куки, так что система может определить, какие пользователи данных следует использовать, я знаю, что это очень плохо для клиентской стороны печенья, Какой самый лучший способ делать это?
Как я могу исправить эту проблему? Есть ли лучший способ настроить cookie для входа в систему? Есть ли другой лучший способ настроить сеанс входа в систему?
Итак, как я могу установить cookie в первой функции и получить его значение от второй функции?
Примечание: Нет проблем с аутентификацией, моя основная задача - правильно установить файлы cookie.
Джанго как достаточно полная и расширяемая система Идента ('contrib.auth'), почему бы не использовать его вместо того, чтобы изобретать колесо? –
@brunodesthuilliers, как я упомянул в своем посте, я использую социальную аутентификацию, пользовательская система дает мне больше возможностей и мне легче всего. – ShellRox
Как я уже говорил, вклад.auth'is extensible_ и есть примеры социальной интеграции (даже некоторые подключаемые приложения FWIW). Также учтите, что любое подключаемое приложение, требующее авторизации и/или прав доступа, очень вероятно (это преуменьшение) зависит от 'contrib.auth'. Но если вы действительно любите боль и предпочитаете катиться самостоятельно, вы все равно можете посмотреть, как «contrib.auth» обрабатывает эту часть проблемы. –