【问题标题】:Google Oauth consent screen doesn't show upGoogle Oauth 同意屏幕未显示
【发布时间】:2020-05-02 18:57:14
【问题描述】:

我正在尝试按照 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

【问题讨论】:

  • 在服务器上运行的 Python 代码如何在客户端浏览器中打开一个窗口?当您使用 JavaScript 客户端时,会弹出该窗口。
  • @GuidoFlohr 该指南没有提及 Javascript 客户端。它的字面意思是 ping 该 API,下一步是为用户弹出一个窗口。您指的是什么 Javascript 客户端,我该如何实现它?
  • 您的应用程序正在 IP 为 1.2.3.4 的服务器上运行,并通过向 Google 发送请求并在 IP 为 5.6.7.8 的用户笔记本电脑上打开浏览器窗口?那应该如何工作?我怎么能从我的电脑上授权你的应用程序在你的应用程序上?尝试为您的用例找到更好的教程。
  • 而且,是的,它是 Ruby,而不是 Python 代码。 :)

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


【解决方案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。您可以在您的网络服务器日志中看到(如果服务器正常),或者浏览器将显示一条错误消息,您可以在浏览器地址栏中看到包含 Google 发送的所有查询参数的 URL。

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

当它出现时,过程类似:您 - 作为用户 - 授予请求的权限,当您点击该按钮时,Google 将再次以重定向响应,然后您从查询参数中获取令牌。

【讨论】:

  • 哇,非常感谢!早该知道就这么简单。我经常使用 API,以至于忘记了还有其他方法。
  • 我也花了一些时间来理解 Google 人员“向我们发送请求......”的真正含义。所以不用担心,编码愉快!
猜你喜欢
  • 2018-03-01
  • 2021-08-25
  • 2019-03-02
  • 1970-01-01
  • 2018-09-04
  • 2017-10-23
  • 2019-08-15
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多