Estoy tratando de usar MongoEngine en un proyecto django que estoy escribiendo. Tengo dificultades para obtener (o comprender cómo) el back-end de autenticación funciona.MongoEngine Autenticación de usuario (django)
El objeto de usuario que yo sepa no está almacenado en la solicitud.
Lo tengo funcionando, pero no estoy seguro si lo estoy haciendo de la manera correcta/segura. Si alguien pudiera mirar mi código, sería muy apreciado.
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')
en mi settings.py he añadido en la parte superior del archivo:
AUTHENTICATION_BACKENDS = (
'mongoengine.django.auth.MongoEngineBackend',
)
SESSION_ENGINE = 'mongoengine.django.sessions'
import mongoengine
mongoengine.connect('project')
Gracias por la ayuda que tengo funcionando exactamente como debe ser ahora, una nota es que no debe llamar a la vista 'login' ya que chocó con la función de inicio de sesión real. – justinfay
correcto, estaba copiando su ejemplo. lo que escribí fue mostrar el patrón – MattoTodd
¡Gracias por el puntero! Sin embargo, podría tener sentido importar ** Usuario ** de ** mongoengine.django.auth ** (el usuario "regular" debe importarse de ** django.contrib.auth.models **, no ** django.contrib .auth **) –