2016-11-09 106 views
0

我在我的项目中使用django.contrib.auth进行身份验证,其工作正常,现在我必须在超级会员必须登录其成员帐户的模块上工作,他应该有他们的帐户的所有访问,如何在django中使用加密密码登录

所以我必须登录与会员的电子邮件ID和他们的加密密码由注册成员时由django Auth自动保存。

user_existence = User.objects.filter(email=request.POST['email']).first() 
    if user_existence: 
     email = user_existence.email 
     password = user_existence.password 
     user = authenticate(username=email, password=password) 
     if user is not None: 
      login(request, user) 
      return HttpResponse('user_connected') 
     return HttpResponse('user_auth_failed') 

是否可以将此密码加密或者加密口令登录,或者,如果有另一种解决方案的将是巨大的。

+0

你想使用由django生成的密码哈希登录吗? –

+0

是想用django auth生成的散列密码登录 – Pankaj

+0

加密的密码是这样的: - pbkdf2_sha256 $ 24000 $ GT0uQ4jodKLe $ UmSEWl7hquttwYyx2qiOXSA3nVU8Rn1Q3BNSff4 + ok0 = – Pankaj

回答

2

您可以直接登录为使用

user = User.objects.get(email=request.POST['email']) 
user.backend = 'django.contrib.auth.backends.ModelBackend' 
login(request, user) 

无需运行authenticate()某个用户。

+0

它会像django auth一样工作,因为我已经为我的完整项目实施它 – Pankaj

+0

你是什么意思? –

+0

返回的错误: - 未定义全局名称'django' – Pankaj