我的前端rails应用程序也使用AngularJs,我还有一个同样用rails编写的api后端(使用rails-api
-gem(。我已经为这个系统实现了登录系统。现在我想实现login with facebook/google
。我在网上搜索了一下,到目前为止我找到了这个博客。从这个博客中,我得到了在Android中使用Rails作为后端来实现google OAuth 2
的想法。但在我的情况下,我想在我的前端应用程序(Rails+Angular(中实现google OAuth 2
,并将Rails作为后端。
为了实现google OAuth 2
,前端应用程序需要请求token
到google oauth2 authorization server
,我不知道如何做到这一点。
另外,使用rails请求令牌是否好,或者我可以使用Angular来处理该部分。为此目的,最佳做法是什么?
首先,您需要在front-end
中实现谷歌登录。以下是关于在javascript
中实现谷歌登录的谷歌文档。谷歌将为您提供用户档案的信息。在您获得信息后,您可以将其发送给您的服务。在服务器端/后端,您可以使用这些信息执行任何操作。这是你的责任。
此外,本文档可能对您的案例有所帮助。
您可以使用omniauth-google-oauth2-gem
主要思想是将其实现到Devise
中。
好的解决方案你可以找到这个。
使用此解决方案,如果您使用前端/后端,则没有问题。所以,你应该注意下一步:
用户型号:
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"
}
解决方案中的下一步操作。。
在我的项目中,它也适用于前端/后端。所以,如果你发现困难,我很乐意为它的解决提供建议。。。
更新:适用于Android版本的前端。你不应该在谷歌上做身份验证/授权前端。您应该在后端进行操作。你可以使用网络工具或其他合适的方式在Devise
和Google auth pages
周围走动。。。