如何在API模式下使用DoorKeeper处理OAuth流? [英] How to handle OAuth flow with Doorkeeper in API Mode?

查看:14
本文介绍了如何在API模式下使用DoorKeeper处理OAuth流?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

场景很简单:

  • 具有DoorKeeper提供程序的仅限rails API服务器
  • A移动应用SPA(比方说反应)与希望使用电子邮件和密码注册和登录的用户

当您有一个普通的Rails Stack时,您需要定义一个authorizeUrl用户被重定向以提供其凭据并使用AuthizationCode返回Web/Mobile App的authorizeUrl。在API模式下,基本上您的"AuthizeUrl"位于同一个应用程序内。

当您的提供商不能提供登录页面(因为是纯API服务器)时,处理OAuth流的适当方式是什么?

推荐答案

您必须在Reaction中构建一个登录表单,该表单发送一个HTTP post请求来获取一个OAuth令牌,比如在/Oauth/Token上,该令牌带有用户输入的凭据(在请求正文中,与客户端ID/Secret一起(取决于您的OAuth服务器配置)。

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

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

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

这篇关于如何在API模式下使用DoorKeeper处理OAuth流?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆