【问题标题】:How to handle OAuth flow with Doorkeeper in API Mode?如何在 API 模式下使用 Doorkeeper 处理 OAuth 流?
【发布时间】:2020-06-06 19:24:55
【问题描述】:

场景很简单:

  • 带有 Doorkeeper 提供程序的 仅 Rails API 服务器
  • 一个移动应用和一个SPA(比如 React),用户希望使用电子邮件和密码进行注册和登录

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

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

【问题讨论】:

    标签: ruby-on-rails reactjs oauth-2.0 single-page-application doorkeeper


    【解决方案1】:

    您必须在 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 工作流程,我不确定您的后端堆栈是否暗示有关身份验证的一些自定义,但似乎此工作流程仍然有效。

    【讨论】:

    • 在这种情况下应该使用什么授权流程?
    猜你喜欢
    • 2015-11-27
    • 2013-04-07
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多