首页 > 解决方案 > 如何在 API 模式下使用 Doorkeeper 处理 OAuth 流?

问题描述

场景很简单:

当你有一个普通的Rails Stack时,你需要定义一个authorizeUrl用户被重定向到哪里以提供他们的凭据并返回到带有authorizationCode的 Web/Mobile 应用程序。在 API 模式下,您的“authorizeUrl”基本上位于同一个应用程序内。

当您的提供商无法提供OAuth登录页面时,处理流程的适当方式是什么(因为是仅 API 的服务器)

标签: ruby-on-railsreactjsoauth-2.0single-page-applicationdoorkeeper

解决方案


您必须在 React 中构建一个登录表单,该表单发送 HTTP POST 请求以获取 OAuth 令牌,例如在 /oauth/token 上,并使用用户输入的凭据(在请求正文中,在客户端 id/secret 旁边(取决于您的OAuth 服务器配置)。

然后在响应时,您将获得一个访问令牌,您可以在每个后续请求中添加授权标头,以便您的服务器知道其合法请求。

通常,如果您将Axios用作 HTTP 客户端,则可以使用拦截器将访问令牌添加到每个请求中(如下所述:https ://medium.com/swlh/handling-access-and-refresh-tokens-using-axios -interceptors-3970b601a5da)。

这是“标准”OAuth 工作流程,我不确定您的后端堆栈是否暗示有关身份验证的一些自定义,但似乎此工作流程仍然有效。


推荐阅读