Google/Facebook Rails 前端应用程序中的 OAuth2,使用 rails-api 作为网络服务
Google/Facebook OAuth2 in Rails Front-end app with rails-api as webservice
我的前端 rails 应用程序也使用 AngularJs,我还有一个 api 后端也用 Rails 编写(使用 rails-api
gem)。我已经为这个系统实现了登录系统。现在我想实现login with facebook/google
。我通过互联网搜索,到目前为止我找到了 this 博客。从这篇博客中,我想到了在 Android 中实现 google OAuth 2
并以 Rails 作为后端。但就我而言,我想在我的前端应用程序 (Rails + Angular) 中实现 google OAuth 2
,并以 Rails 作为后端。
为了实现 google OAuth 2
,前端应用程序需要请求 token
到 google oauth2 authorization server
,我不知道该怎么做。
此外,使用 rails 请求令牌是否好,或者我可以使用 Angular 来请求令牌。为此目的的最佳做法是什么?
您可以使用 omniauth-google-oauth2 gem
主要思想是将其实现到 Devise
。
好的解决方案您可以找到 this。
使用此解决方案,如果您使用 frontend/backend 是没有问题的。
所以,你应该注意接下来的步骤:
用户模型:
devise :database_authenticatable, ... , :omniauthable
Devise.rb:
config.omniauth :google_oauth2, ENV['GP_key'], ENV['GP_secret'],
{
name: 'google',
scope: 'plus.login, userinfo.email, userinfo.profile,
...
youtubepartner, youtubepartner-channel-audit',
prompt: "select_account"
}
解决方案中的后续步骤..
在我的项目中,它也适用于 frontend/backend。
所以,如果您发现困难,我很乐意为您出谋划策...
更新: Android 版本的前端。
你不应该在 Google 上做 authentication/authorization 前端。
您应该在后端执行此操作。
您可以使用网络工具或其他合适的方式在 Devise
和 Google auth pages
...
中走动
首先,您需要在front-end
中实现google登录。 Here 是关于在 javascript
中实现 google 登录的 google 文档。 google 将为您提供有关 用户个人资料 的信息。获得信息后,您可以将其发送给您的服务。在服务器 side/Backend 上,您可以使用此信息做任何事情。那是你的事。
此外,this 文档可能对您的案例有所帮助。
我的前端 rails 应用程序也使用 AngularJs,我还有一个 api 后端也用 Rails 编写(使用 rails-api
gem)。我已经为这个系统实现了登录系统。现在我想实现login with facebook/google
。我通过互联网搜索,到目前为止我找到了 this 博客。从这篇博客中,我想到了在 Android 中实现 google OAuth 2
并以 Rails 作为后端。但就我而言,我想在我的前端应用程序 (Rails + Angular) 中实现 google OAuth 2
,并以 Rails 作为后端。
为了实现 google OAuth 2
,前端应用程序需要请求 token
到 google oauth2 authorization server
,我不知道该怎么做。
此外,使用 rails 请求令牌是否好,或者我可以使用 Angular 来请求令牌。为此目的的最佳做法是什么?
您可以使用 omniauth-google-oauth2 gem
主要思想是将其实现到 Devise
。
好的解决方案您可以找到 this。
使用此解决方案,如果您使用 frontend/backend 是没有问题的。 所以,你应该注意接下来的步骤:
用户模型:
devise :database_authenticatable, ... , :omniauthable
Devise.rb:
config.omniauth :google_oauth2, ENV['GP_key'], ENV['GP_secret'],
{
name: 'google',
scope: 'plus.login, userinfo.email, userinfo.profile,
...
youtubepartner, youtubepartner-channel-audit',
prompt: "select_account"
}
解决方案中的后续步骤..
在我的项目中,它也适用于 frontend/backend。 所以,如果您发现困难,我很乐意为您出谋划策...
更新: Android 版本的前端。
你不应该在 Google 上做 authentication/authorization 前端。
您应该在后端执行此操作。
您可以使用网络工具或其他合适的方式在 Devise
和 Google auth pages
...
首先,您需要在front-end
中实现google登录。 Here 是关于在 javascript
中实现 google 登录的 google 文档。 google 将为您提供有关 用户个人资料 的信息。获得信息后,您可以将其发送给您的服务。在服务器 side/Backend 上,您可以使用此信息做任何事情。那是你的事。
此外,this 文档可能对您的案例有所帮助。