Rails前端应用程序中的Google/Facebook OAuth2,使用Rails api作为Web服务



我的前端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,前端应用程序需要请求tokengoogle 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版本的前端。你不应该在谷歌上做身份验证/授权前端。您应该在后端进行操作。你可以使用网络工具或其他合适的方式在DeviseGoogle auth pages周围走动。。。

最新更新