繁体   English   中英

使用 Ruby on Rails API 和 React 登录 Google

[英]Login with Google, using a Ruby on Rails API and React

我目前正在尝试使用 google 实现登录作为一个选项,以便用户更轻松地登录和创建用户。

我有一个使用 devise 登录的 Rails API,以及一个使用 React 向 Rails 5 API 发出请求的前端。

我不确定我是否必须在后端或前端进行所有这些登录,我最大的问题是在使用 google 登录时创建用户,因为没有密码我无法创建用户。

我从来没有创建过这种登录系统,所以我不确定它是如何工作的,我相信我必须在后端实现所有功能,使用 google oauth gem,但我想知道是否有人有如何做的提示。

我应该只使用反应组件吗? 只有 Rails 宝石? 或者两者都是正确答案?

谢谢。

我可以给你方向。

首先,您必须弄清楚您将在 OAuth 提供程序中使用哪个授权流程。

有四种方式,我只列出最常用的两种方式。

  1. 代码授予流程(在网站、omniauth-google 或使用这种方式的类似 gem 中使用)

  2. 隐式授权流程(本机应用程序,这意味着您必须在前端执行 OAuth 流程)

如果你要实现 API 服务器,你应该考虑第二种方式。

因为 API server 应该是无状态的,所以第一种方式需要 session 来保存 OAuth 流的状态。

此外, devise不是实现 API 服务器的好主意,您应该考虑jwt或基于令牌的身份验证。

虽然,你可以使轨API内使用会话存储deviseomniauth-series

如果您想在前端完成所有 OAuth,请使用第二种方式。

或者您可以简单地将按钮链接添加到您的反应组件中的 OAuth 回调 url,然后您的 Web 服务器将处理您的 OAuth 流程(这是第一种方式)。

在考虑了你的情况后,我建议你使用第一种方式。

因为你可以在互联网上找到很多关于deviseomniauth-series资源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM