带有自定义用户模型的 django-oauth2-provider?

suz*_*ant 3 python django oauth django-rest-framework django-oauth

我现在真的被我的项目困住了。我正在尝试为我的应用程序实现 Oauth2。我发现了很多关于 django-oauth2-provider 的信息并尝试了它。唯一的问题是,它使用 django.contrib.auth 中的用户模型。我们网站的主要用户保存在名为 User 的自定义模型中,该模型不继承或扩展 django.contrib.auth 中的模型。

有什么方法可以使用我的自定义用户模型来创建客户端和令牌?

如果 django-oauth2-provider 不能用于此目的,任何人都可以向我推荐一些 oauth2 库,其中可以选择使用我自己的模型实现 oauth2。

真挚地,

苏珊特·卡尔基

Gal*_*man 5

正如之前的答案所建议的那样,您应该AbstractUserdjango.contrib.auth.models.

OP 所指的访问令牌的问题发生在迁移AUTH_USER_MODEL 更改设置时django-oauth2-provider

django-oauth2-provider被迁移,它创建的用户模型和Django的的oauth2提供商之间的关键约束。

解决方案非常简单:

  1. 创建您的新用户模型并更改AUTH_USER_MODEL设置。
  2. 转到django_migration数据库中的表。
  3. 删除所有行django-oauth2-provider
  4. python manage.py makemigrations
  5. python manage.py migrate

现在,这些django-oauth2-provider表已连接到 RIGHT User 模型。