Próbuję użyć MongoEngine w projekcie django, który piszę. Mam trudności z uzyskaniem (lub zrozumieniem) działania mechanizmu uwierzytelniania.Uwierzytelnianie użytkownika MongoEngine (django)
Obiekt użytkownika, o ile wiem, nie jest przechowywany w żądaniu.
Mam to działa, ale nie jestem pewien, czy robię to w odpowiedni/bezpieczny sposób. Gdyby ktoś mógł spojrzeć na mój kod, byłbym bardzo wdzięczny.
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')
w moim settings.py Dodałem na początku pliku:
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
SESSION_ENGINE = 'mongoengine.django.sessions'
import mongoengine
mongoengine.connect('project')
Dzięki za pomoc Mam to działa dokładnie to, jak powinien teraz, jedna uwaga nie powinieneś wywoływać widoku 'login', ponieważ zderzy się z rzeczywistą funkcją logowania. – justinfay
poprawne, kopiowałem twój przykład. To, co napisałem, miało pokazać wzór – MattoTodd
Dzięki za wskazówkę! Może jednak być sensowne zaimportowanie ** User ** from ** mongoengine.django.auth ** ("zwykły" użytkownik musi zostać zaimportowany z ** django.contrib.auth.models **, nie ** django.contrib .auth **) –