2015-07-10 51 views
0

可以說我有用戶與哈希密碼Django的認證或將其轉換爲純

user = User.objects.get(email="[email protected]") 

電子郵件現在我想此用戶登錄,如:

user = authenticate(username=username, password=user.password) 

身份驗證不採取哈希密碼。但在這裏我只能得到哈希密碼。我怎麼可以登錄該用戶可以說,改變它的密碼

謝謝

+0

你有麻煩登錄或其只是密碼你卡在? –

+1

爲什麼在更改密碼之前需要登錄用戶? –

+1

http://stackoverflow.com/questions/2787650/manually-logging-in-a-user-without-password丹尼爾出色的回答 – Wtower

回答

3

你不需要登錄用戶更改密碼。你可以使用Django的幫助函數set_password()來更改密碼。

from django.contrib.auth.models import User 

user = User.objects.get(email="[email protected]") 
user.set_password('new_password') 
user.save() # call save explicitly 

按照該文檔,

set_password(raw_password)
設置用戶的密碼,以給定的原料 串,取密碼散列的照顧。不保存用戶 對象。