繁体   English   中英

如何从auth_user django python中选择给定用户名和哈希密码的用户

[英]how to select user from auth_user django python for given username and hashed password

我正在创建一个python api,如果在数据库中找到了电子邮件和密码,但是会对该密码进行哈希处理,它将从mysql数据库返回数据,这是他们可以哈希从api输入的密码并将其与mysql密码进行比较的任何方式。

我正在使用django.contrib.auth创建新用户,这些用户自动在包含哈希密码的数据库中创建了表auth_user。

我知道一个解决方案是将未加密的密码存储在另一个表中,但是可以在不创建另一个密码字段的情况下完成此操作吗?

我搜索了很多,但找不到任何解决方案。

您可以使用authenticate 无需您自己对密码进行哈希处理,Django已经做到了。 您只需要传递用户名和密码即可验证功能,它将返回相应的User对象。

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(request, username=username, password=password)

您也可以使用check_password django中的每个用户都有此方法。 它将自动对其进行哈希处理并将其与之前保存的内容进行比较:

user.check_password(raw_password)

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM