8
我想在我写的django项目中使用MongoEngine。我很难获得(或了解如何)身份验证后端的工作原理。MongoEngine用户身份验证(django)
尽我所知,用户对象不存储在请求中。
我有它的工作,但我不知道我是否以正确/安全的方式做它。如果有人可以看我的代码,我将不胜感激。
def login(request):
user = authenticate(request.POST['username'],request.POST['password'])
if user is not None:
request.session['user'] = user
if user.is_authenticated:
return HttpResponse(user)
else:
return HttpResponse('login failed')
def new_page(request):
try:
user = request.session['user']
if user.is_authenticated:
return HttpResponse('welcome')
except:
return HttpResponse('need be logged in')
在我的settings.py
我在文件的顶部添加:
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
SESSION_ENGINE = 'mongoengine.django.sessions'
import mongoengine
mongoengine.connect('project')
感谢您的帮助,我已经准备好了它应该如何工作,一个注意事项是您不应该调用视图'login',因为它与实际的登录函数冲突。 – justinfay
正确,我正在复制你的例子。我写的是显示模式 – MattoTodd
感谢您的指针!尽管从** mongoengine.django.auth **(“常规”用户必须从** django.contrib.auth.models **导入用户,而不是** django.contrib .auth **) –