[英]Django 1.11 authentication set_unusable_password vs setting password to None
[英]Do I need to use set_unusable_password() when creating new users in my Django application?
我有一個應用程序,用戶使用活動目錄進行身份驗證。 這意味着無需在我們的應用程序數據庫中存儲密碼。 我們將每個用戶的詳細信息(如用戶名等)存儲在應用程序數據庫的users表中。
我正在努力實現允許用戶添加到應用程序的功能。 我正在使用ModelForm
來生成表單。
模型表單如下所示:
class GeminiUserAccessForm(ModelForm):
class Meta:
model = GeminiUser
fields = ['email', 'is_authorised']
labels = {
'is_authorised': 'Is authorised?'
}
視圖中的方法處理來自表單頁面的請求:
def manage_user_access_view(request):
template_name = 'gemini_users/manage_access.html'
if request.method == 'POST':
form = GeminiUserAccessForm(request.POST)
if form.is_valid():
new_user = form.save()
pass
else:
form = GeminiUserAccessForm()
return render(request, template_name, {'form': form})
一切都按預期工作,具有給定電子郵件和授權值的用戶將保存到數據庫中。 密碼留空。
在保存用戶之前是否還需要使用set_unusable_password()
?
這是一種良好的形式和安全性,以防萬一有人啟用身份驗證,因為某種原因查看password
字段。
set_unusable_password()
調用make_password(None)
,返回
UNUSABLE_PASSWORD_PREFIX + get_random_string(UNUSABLE_PASSWORD_SUFFIX_LENGTH)
當password is None
,即任何開箱即用的哈希算法從未被認為有效的密碼哈希。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.