我正在创建一个python api,它将返回mysql数据库中的数据,如果电子邮件和密码在数据库中发现,但密码是散列的,是他们的任何方式,我可以散列从api输入的密码,以比较它与mysql的密码。
我使用django.contrib.auth创建新用户,这些用户在数据库中自动创建包含散列密码的表auth_user。
我知道一种解决方案是将未加密的密码存储在另一个表中,但是可以在不创建另一个密码字段的情况下这样做吗?
我找了很多,也找不到任何解决方案。
发布于 2017-09-03 20:41:14
您可以使用authenticate。没有必要自己修改密码,Django已经这样做了。您只需将用户名和密码传递给身份验证函数,它就会返回相应的User对象。
def my_view(request):
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)发布于 2017-09-03 21:02:29
您也可以使用check_password。django中的每个用户都有这个方法。它会自动对其进行哈希运算,并将其与之前保存的数据进行比较:
user.check_password(raw_password)希望它能帮上忙!
https://stackoverflow.com/questions/46023524
复制相似问题