2016-11-09 108 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