Django oauth2 工具包提供者,授予第三个应用程序访问权限

问题描述

Django 站点充当 oauth2 提供者。应用程序 tomcat_app 的设置如下所示:

enter image description here

每当有人尝试登录 tomcat_app 时,用户都会被重定向到 Django。如果用户可以提供有效的凭据,他们将被重定向到 tomcat_app。到现在为止还挺好。 Tomcat_app 进一步提供了一个 REST API,它知道 oauth2 工作流。如果请求提供有效的令牌请求将被接受。

我的心结:第三个服务器也应该被授予使用 tomcat_app rest api 的权限。可以吗

  • 在 Django externalapp_user/externalapp_password 中设置一个新用户
  • 通过将新用户凭据发送到 django 来获取 tomcat_app 的密钥

令我感到困惑的是,如何正确发送凭据以及如何处理重定向 url。我正在寻找类似于 client type: publicAuthorization grant type: Resource ownder password-based

的东西
curl -X POST -d "grant_type=password&username=admin&password=admin" http://client:secret@localhost/o/token/

解决方法

我从 django-oauth-toolkit 文档中了解到:如果您想使用“基于资源所有者密码”的授权授权类型,您需要在您的 tomcat_app 上注册用户。

但是如果您不想让用户在您的应用程序上注册并仍然为他提供 api 端点,最好使用“客户端凭据”授权授予类型。这将使第三方应用能够在登录用户后访问您的 api 端点。

您可以查看 documentation 以更好地了解“客户凭据”流程。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...