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 **) –