【问题标题】:Custom model for authentication in django restframework instead of default user modeldjango rest 框架中用于身份验证的自定义模型而不是默认用户模型
【发布时间】:2017-06-23 03:10:06
【问题描述】:
我想使用用户名或带有密码的电子邮件为我的用户进行一些自定义身份验证。在第一次使用电子邮件和密码登录时,api 应该返回给我相应的用户令牌。对于使用 api 进行的所有其他操作,我需要使用登录时获得的令牌。
我需要一个自定义模型来存储所有用户信息,例如用户名、密码、电话、电子邮件、令牌等。
如何在 django restframework 中实现这一点。
请指导我实现这一目标。提前致谢。
【问题讨论】:
标签:
django
rest
authentication
frameworks
【解决方案1】:
Django rest-framework 有一个内置的令牌系统,可用于分发和验证令牌。下面是如何使用它的示例。
创建令牌
from rest_framework.authtoken.models import Token
user = User.objects.get(pk=some_pk)
token = Token.objects.create(user=user)
验证令牌
if Token.ojects.get(key=token) # token is sent by client side
# do some task as auth is successful
如果您想扩展默认 User 模型,则创建一个新模型并在您的自定义模型中放置一个 onetoone 字段,该字段引用默认 User 模型。
class AppUserProfile(models.Model):
user = models.OneToOneField(User)
... # add other custom fields like address or phone