Как реализовать пользовательскую глобальную функцию входа / выхода в Django
Я пытаюсь реализовать пользовательские функции входа / выхода. Мои требования немного отличаются от встроенной функции входа в django. Итак, я должен реализовать эту функцию таким образом, чтобы я мог просто поместить значение 0 / 1 в базу данных, чтобы проверить, вошел ли пользователь в систему или нет. У меня есть логическое значение для этого. Вопрос здесь действительно так: как мне передать пользовательский объект / переменную, которая говорит мне, что мой пользователь вошел в систему (в моем случае: users.is_logged_in = True
) к каждому html-шаблону, чтобы пользователь (и мое приложение) знали, что он вошел в систему. Кроме того, он должен иметь возможность выйти из системы, щелкнув ссылку на каждой html-странице. Есть ли какой-нибудь глобальный шаблон, который я могу создать и сделать заполнителем, когда пользователь успешно вошел в систему? Мой код здесь:
def checkIfUserIsValid(request, template_name='appCenter.html'):
email = str(request.POST.get('email','')).strip()
password = str(request.POST.get('password','')).strip()
try:
users = Users.objects.get(email = email, password = password)
users.is_logged_in = True
users.save()
return direct_to_template(request, template_name, context_instance=RequestContext(request))
except Users.DoesNotExist:
incorrectUserOrPassError = "Incorrect Username or Password. Please try again."
return render_to_response('index.html', {'incorrectUserOrPassError':incorrectUserOrPassError},
context_instance=RequestContext(request))
def logOutUser(request, template_name='index.html'):
return direct_to_template(request, template_name, context_instance=RequestContext(request))
PS: я посмотрел в методе render()..
return render(request,'appCenter.html',{'users':users})
Могу ли я сделать что-то подобное и использовать шаблон в качестве глобального шаблона или что-то в этом роде? но проблема, которую я вижу, заключается в том, что я должен перенаправить пользователя в appCenter.html, как только он будет аутентифицирован.
1 ответ
НЕ ДЕЛАЙТЕ ЭТОГО.
Вы храните простые текстовые пароли в базе данных. ЭТО НЕОБХОДИМО. Действительно, не делай этого.
Вы не показываете ничего, что не может быть лучше сделано со встроенной системой аутентификации Django, которая уже включает user
Объект в каждом шаблоне (через контекстный процессор). Используйте это.