未显示Google Oauth同意屏幕

时间:2020-01-15 23:36:10

标签: oauth oauth-2.0 google-api google-oauth google-api-client

我正在尝试遵循Google Oauth指南来授予我的Rails应用程序编辑用户日历的权​​限。也许是我误会了,但是guide似乎在说,您要做的就是向Google API发送特定请求,这将提示用户弹出同意屏幕。但是,我发送的请求没有错误,但是没有任何反应。

我的应用程序已经过验证,并且我尝试使用的URL已添加到我的Oauth凭据中。从理论上讲,在这种情况下没关系,但是我还安装了“ google-api-client”,“ omniauth”和“ omniauth-google-oauth2” gem。该URL是带有SSL证书的HTTPS。

我在做什么错了?

# this is the controller action for my path, so the API is pinged when the page is loaded
def path

    url = "https://accounts.google.com/o/oauth2/v2/auth?
      scope=email%20profile%20calendar.events&
      response_type=code&
      redirect_uri=<URL>&
      client_id=<CLIENT_ID>"

    require 'open-uri'
    require 'uri'
    require 'net/http'
    require 'json'
    require 'net/https'
    uri = URI(url)
    response = Net::HTTP.get(uri)


end

1 个答案:

答案 0 :(得分:1)

指南有点混乱。他们说“向URL https://accounts.google.com/o/oauth2/v2/auth发送请求”,但实际上是“在浏览器中打开该URL”。我认为这就是您误解的地方。

因此,创建此html文件:

<a href="https://accounts.google.com/o/oauth2/v2/auth?scope=email%20profile%20calendar.events&response_type=code&redirect_uri=REDIRECT_URI&client_id=CLIENT_ID">Login
with Google</a>

现在在浏览器中打开html文件,然后单击链接。您会注意到Google服务器将浏览器重定向到您指定的REDIRECT_URI。您可以在Web服务器日志中看到日志(如果服务器可以工作),或者浏览器将显示错误消息,并且可以在浏览器地址栏中看到包含Google发送的所有查询参数的URL。

在文档中查看您的服务器必须对重定向的请求做出响应,以便最终显示同意屏幕。

显示时,过程类似:您-作为用户-授予所请求的权限,并且当您单击按钮时,Google会再次重定向,然后从查询参数中获取令牌。