新手程序员在这里。我想创建一个包含数百个用户的登录系统。最初,我会以以下格式获得有关这些用户的一些数据库信息:
student#| first_name | last_name | student_ID |
--------|------------|-----------|------------|
10001 | Bob | Jones | Bob100 |
10002 | Andy | Guo | And101 |
10003 | Andy | Sir | And102 |
10004 | Bob | Jones | Bob101 |
名字和姓氏可以相同,但学生#和student_ID#将始终是唯一的。 因此,我希望 student_ID 为用户名,学生#为密码。在阅读了一些教程后,我实现了一个非常基本的登录系统,我必须手动创建用户:
python manage.py createsuperuser
然后我使用以下代码对用户进行身份验证:
def auth_view(request):
username = request.POST.get('username', '')
password = request.POST.get('password', '')
user = auth.authenticate(username=username, password=password)
if user is not None:
auth.login(request, user)
return HttpResponseRedirect('/accounts/loggedin')
else:
return HttpResponseRedirect('/accounts/invalid')
所以我想到了几个选项,我想问你的意见:
我不确定我是否正朝着正确的方向前进。任何帮助是极大的赞赏。感谢。
答案 0 :(得分:0)
我强烈建议您不要创建用户密码为学生ID的系统。相反,我建议允许用户创建密码,并使用您的名称和ID列表来验证并匹配它们,作为注册的一部分。
或者,您可以预填充用户列表并使用set_password(student ID)
设置密码,并要求用户在their first logon上更改其密码。
主要收获是Django已经有了一个非常好的身份验证系统,该系统允许用户设置安全密码,并使用易于实现的bcrypt正确哈希它们。除非您有充分的理由这样做,否则您自己进行身份验证确实很不好。