我想为我的用户使用用户名或电子邮件和密码进行一些自定义身份验证。在第一次使用电子邮件和密码登录时,api 应该返回相应的用户 token 。对于 api 的所有其他操作,我需要使用 token ,这是我在登录时获得的。
我需要一个自定义模型来存储所有用户信息,如用户名、密码、电话、电子邮件、 token 等。
如何在 django restframework 中实现这一点。
请指导我实现这一目标。提前致谢。
最佳答案
Django rest-framework 有一个内置的 token 系统,可用于分发和验证 token 。以下是如何使用它的示例。
创建 token
from rest_framework.authtoken.models import Token
user = User.objects.get(pk=some_pk)
token = Token.objects.create(user=user)
验证 token
if Token.ojects.get(key=token) # token is sent by client side
# do some task as auth is successful
如果您想扩展默认用户模型,那么创建一个新模型并在您的自定义模型中放置一个引用默认用户模型的 onetoone 字段。
class AppUserProfile(models.Model):
user = models.OneToOneField(User)
... # add other custom fields like address or phone
关于django - django restframework 中用于身份验证的自定义模型而不是默认用户模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44712455/