【问题标题】:Django REST custom authenticationDjango REST 自定义身份验证
【发布时间】:2017-01-07 23:56:55
【问题描述】:

这是我的问题,伙计们。我有一个商店用户,可以登录到他的网站并查看与他的商店相关的各种数据。在他的商店里,假设有 10 台向他发送账单的安卓计费设备。现在我需要在 Django REST 框架中创建一个自定义身份验证,它将使用它们的 id_numbertype 字段(不存储用户的用户名和密码)对 android 设备进行身份验证,并为它们分配一个令牌(每个单独)并允许它们发布, GET, PUT 等。这可能吗?

Store(models.Model):
    user = models.ForeignKey(User, default=1)

AndroidDevice(models.Model):
    id_number = models.CharField()
    type = models.CharField()
    store= models.ForeignKey(Store)

【问题讨论】:

    标签: python django authentication django-rest-framework custom-authentication


    【解决方案1】:

    是的……有可能

    注意: 使用custom authentication 并创建与您的 AndroidDevice 模型相关的您自己的令牌模型,而不是用户模型或您需要做的任何事情(多个令牌、过期令牌等) .)。阅读 DRF 源代码以获得灵感 :)

    希望对你有帮助

    【讨论】:

    • 感谢您的输入 pdb。我会尝试你的建议。我已经阅读了 DRF 文档的每一个字,但对我来说仍然有点模糊,因为我是 Django 和 DRF 的初学者......
    【解决方案2】:

    我最终做的是向我的模型添加另一个字段,与用户模型的 OneToOne 关系。这样我就能够使用 DRF 的内置身份验证。我还覆盖了该模型的保存方法,因此当创建新实例时,它会创建一个新的用户对象,其用户名/密码设置为 id_number/type 字段中的值。

    【讨论】:

      猜你喜欢
      • 2015-12-26
      • 2015-11-12
      • 2019-11-20
      • 1970-01-01
      • 2019-02-02
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      相关资源
      最近更新 更多