场景很简单:
- A 仅限 Rails API带有 Doorkeeper 提供商的服务器
- A 移动应用 and a SPA(假设是 React)想要使用电子邮件和密码注册和登录的用户
当你有一个正常的Rails 堆栈,你需要定义一个authorizeUrl
用户在哪里重定向提供他们的凭据并返回到 Web/移动应用程序授权码。在 API 模式下,基本上您的“authorizeUrl”位于同一个应用程序内。
有什么合适的处理方式OAuth
当您的提供者流动时无法提供服务登录页面(因为是仅 API 服务器)
您必须在 React 中构建一个登录表单,该表单发送一个 HTTP POST 请求来获取 OAuth 令牌,例如在 /oauth/token 上,其中包含用户输入的凭据(在请求正文中,以及客户端 ID/秘密(取决于您的OAuth 服务器配置)。
然后,在响应时,您将获得一个访问令牌,您可以将其添加到每个后续请求的授权标头中,以便您的服务器知道其合法请求。
通常,如果您正在使用Axios https://github.com/axios/axios作为 HTTP 客户端,可以使用拦截器将访问令牌添加到每个请求中(如下所述:https://medium.com/swlh/handling-access-and-refresh-tokens-using-axios-interceptors-3970b601a5da https://medium.com/swlh/handling-access-and-refresh-tokens-using-axios-interceptors-3970b601a5da).
这是“标准”OAuth 工作流程,我不确定您的后端堆栈是否意味着有关身份验证的一些自定义,但似乎此工作流程仍然有效。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)