簡體   English   中英

在Django應用程序中創建新用戶時是否需要使用set_unusable_password()?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM