[英]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 提供程序中使用哪个授权流程。
有四种方式,我只列出最常用的两种方式。
代码授予流程(在网站、omniauth-google 或使用这种方式的类似 gem 中使用)
隐式授权流程(本机应用程序,这意味着您必须在前端执行 OAuth 流程)
如果你要实现 API 服务器,你应该考虑第二种方式。
因为 API server 应该是无状态的,所以第一种方式需要 session 来保存 OAuth 流的状态。
此外, devise
不是实现 API 服务器的好主意,您应该考虑jwt
或基于令牌的身份验证。
虽然,你可以使轨API内使用会话存储devise
或omniauth-series
。
如果您想在前端完成所有 OAuth,请使用第二种方式。
或者您可以简单地将按钮链接添加到您的反应组件中的 OAuth 回调 url,然后您的 Web 服务器将处理您的 OAuth 流程(这是第一种方式)。
在考虑了你的情况后,我建议你使用第一种方式。
因为你可以在互联网上找到很多关于devise
和omniauth-series
资源。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.