在 OAuth 带外 (oob) 流被弃用后,如何将 curl 脚本授权给 Google Oauth?

DaI*_*mTo 5 curl oauth google-api google-oauth

我有一个curl 脚本GoogleAuthenticationCurl.sh,我已经使用它大约十年来从Google 的不同Google API 请求信息。

该脚本用户安装了应用程序凭据来构建 Google oauth 服务器的同意屏幕。我复制链接,它显示同意屏幕。

# Authorization link.  Place this in a browser and copy the code that is returned after you accept the scopes.
https://accounts.google.com/o/oauth2/auth?client_id=[Application Client Id]&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=[Scopes]&response_type=code
Run Code Online (Sandbox Code Playgroud)

Google 最近做出了一项更改,弃用了 的重定向 uri urn:ietf:wg:oauth:2.0:oob。(#说明-oob

如果我使用我曾经使用过的链接,我会得到以下信息

在此输入图像描述

谷歌希望我们使用redirect_uri=http://127.0.0.1:port or http://[::1]:port">http://[::1]:port而不是urn:ietf:wg:oauth:2.0:oob.

所以我将链接更改为以下内容并将其放入网络浏览器中

https://accounts.google.com/o/oauth2/auth?client_id=[ClientId]&redirect_uri=http://127.0.0.1b&scope=profile&response_type=code
Run Code Online (Sandbox Code Playgroud)

一开始一切都很顺利,我能够再次看到同意屏幕并同意授权。但我没有得到返回的授权码,而是得到了

在此输入图像描述

这是因为我没有运行网页,我只是想授权一个curl脚本。

无论如何,有没有办法让我的curl脚本响应这个请求,或者谷歌现在完全删除了授权curl脚本的能力?

Ron*_*den 5

弃用

Google 已弃用 OOB 流,因此urn:ietf:wg:oauth:2.0:oob自 2022 年 2 月 28 日起删除了重定向 URL。对于无法侦听 HTTP 端口的客户端来说,这是一项不安全的功能。

移民

您需要迁移到另一个流程。这并不一定意味着您不能使用curl。但不知何故,您需要能够接收带有必要代码的重定向调用。

可能的修复

  • 使用重定向 URL ,注意末尾已http://127.0.0.1删除。b
  • 在同意屏幕之后,检查 URL,您可能会在那里找到代码http://127.0.0.1/?code=COPY_THIS_CODE
  • 运行curl 调用以请求授权代码。

后记

邮递员可能很有趣。