【问题标题】:DRF and Oauth2: creating resource and authorization serversDRF 和 Oauth2:创建资源和授权服务器
【发布时间】:2021-07-12 11:17:39
【问题描述】:

我在 django rest 框架和 oauth2 上开发了一个类似博客的项目。我现在尝试将资源和身份验证服务器分开,如下所示:https://django-oauth-toolkit.readthedocs.io/en/latest/resource_server.html

我已采取以下步骤:

  1. 按照文档中的说明设置身份验证服务器
  2. 将以下内容添加到身份验证服务器的 settings.py 中
OAUTH2_PROVIDER = {
    'SCOPES': {'users': 'user details', 'read': 'Read scope', 'write': 'Write scope', 'groups': 'Access to your groups', 'introspection': 'introspection'},
    'ACCESS_TOKEN_EXPIRE_SECONDS': 86400,  # 1 Day.
}
  1. 按照文档中的说明设置资源服务器
  2. 将此添加到资源服务器的 settings.py 中:
OAUTH2_PROVIDER = {
'RESOURCE_SERVER_INTROSPECTION_URL': 'http://localhost/o/introspect/',
'RESOURCE_SERVER_AUTH_TOKEN': 'abc',
}

我在此处的说明中创建了RESOURCE_SERVER_AUTH_TOKEN basedDjango OAuth- Separate Resource and Authorization Server

总而言之,我为资源服务器创建了一个超级用户,然后使用管理站点向资源服务器添加了一个应用程序,为client type 选择confidential,为authorization grant type 选择authorization code。 'abc' 是我为访问令牌选择的随机字符串。

尽管如此,我仍然面临以下错误:

Introspection: Failed to get a valid response from the authentication server. Status code: 403, Reason: Forbidden.
NoneType: None

根据我所描述的内容,您知道我可能在哪里出错了吗?我是否正确理解了this 并以正确的方式创建了RESOURCE_SERVER_AUTH_TOKEN

【问题讨论】:

    标签: django-rest-framework oauth-2.0 django-oauth-toolkit


    【解决方案1】:

    我在使用'RESOURCE_SERVER_AUTH_TOKEN' 时遇到了同样的问题。所以我改为使用client_idclient_secret

    继续尝试以下操作:

    OAUTH2_PROVIDER = {
        'RESOURCE_SERVER_INTROSPECTION_URL': 'http://127.0.0.1:8000/o/introspect/',
        'RESOURCE_SERVER_INTROSPECTION_CREDENTIALS':
            (
                client_id,
                client_secret
            ),
    }
    

    这就是它对我的工作方式。

    【讨论】:

      猜你喜欢
      • 2016-05-21
      • 2014-07-09
      • 2019-10-27
      • 2018-08-29
      • 2015-05-14
      • 2017-11-10
      • 2020-06-23
      • 2022-08-03
      • 2017-08-26
      相关资源
      最近更新 更多