django - django restframework 中用于身份验证的自定义模型而不是默认用户模型

标签 django rest authentication frameworks

我想为我的用户使用用户名或电子邮件和密码进行一些自定义身份验证。在第一次使用电子邮件和密码登录时,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/

相关文章:

python - Django/Python:传递的变量在函数中未按预期工作

java - REST 重复 URL

api - Azure Insights API 支持哪些资源类型?

html - 浏览器如何识别登录表单?

trello - 使用 OAuth 以编程方式访问 Trello

python - 从一对一迁移到一对多时如何执行数据迁移

python - 我在 django 中的评论表单不起作用?它既不向数据库发送数据也不显示这些数据?

python - 在 Heroku 上部署 Django 应用程序的最佳实践

rest - API设计: Caching “partial” nested objects

maven - 将MavenRepository配置添加到自定义插件中时发生Gradle错误: “Please specify which subtype of Authentication to create”