google oauth

时间:2016-06-01 15:03:20

标签: ruby-on-rails spree google-oauth2

我很抱歉这个问题已被多次询问,我看到了多个答案并与他们交叉核对,但没有运气。这是我遵循的程序

1)去谷歌开发者控制台
2)点击创建凭证
3)Oauth客户端id 4)Web应用程序
在作者的重定向中,我给了https://www.example.com/home

我得到了客户端ID,客户端密码的弹出窗口。在这里我添加了它们

Spree::AuthenticationMethod.where(environment: Rails.env, provider: 'google_oauth2').first_or_create do |auth_method|
    auth_method.api_key = ENV['GOOGLE_ID']
    auth_method.api_secret = ENV['GOOGLE_SECRET']
    auth_method.active = true
  end

现在我使用以下代码调用google oauth

 <a href="https://www.example.com/users/auth/google_oauth2">
     <div>
       Sign up with google
     </div>
 </a>

编辑:

这是我得到的错误

The redirect URI in the request, https://www.example.com/users/auth/google_oauth2/callback, does not match the ones authorized for the OAuth client. Visit https://console.developers.google.com/apis/credentials/oauthclient/490969266456-ki43pu8ejosstkuv01jadmmmt1o33the.apps.googleusercontent.com?project=490969266456 to update the authorized redirect URIs.

这是请求

Request Details
access_type=offline
scope=email
response_type=code
redirect_uri=https://www.example.com/users/auth/google_oauth2/callback
state=31ad247324b285fdf6102e931707e041770a85990050eb40
client_id=490969266456-ki43pu8ejosstkuv01jadmmmt1o33the.apps.googleuserc

看到上述消息后 我进入控制台,并将重定向uri更新为https://www.example.com/users/auth/google_oauth2/callback。我仍然得到同样的错误。

1 个答案:

答案 0 :(得分:2)

所以发生的问题是,我创建了一个帐户没有正确的重定向uri。我在这里有那个

Spree::AuthenticationMethod.where(environment: Rails.env, provider: 'google_oauth2').first_or_create do |auth_method|
    auth_method.api_key = ENV['GOOGLE_ID']
    auth_method.api_secret = ENV['GOOGLE_SECRET']
    auth_method.active = true
  end

后来当我知道,我必须在控制台中放置正确的回调网址,我创建了一个新的凭据。并在.env文件中更新它们。

但它似乎没有在Spree :: AuthenticationMethod.all中更新它们。之前的键出现了。所以我删除了那些记录并做了rails s

新密钥出现在rails控制台中。

要记住的另一点是

当你这样请求时 HREF = “https://www.example.com/users/auth/google_oauth2” &GT;您在谷歌控制台中的回拨uri应该是这样的

https://www.example.com/users/auth/google_oauth2/callback