无法在 POSTMan 上获取 Google oAuth 2 令牌

Posted

技术标签:

【中文标题】无法在 POSTMan 上获取 Google oAuth 2 令牌【英文标题】:Could not obtain Google oAuth 2 token on POSTMan 【发布时间】:2016-07-10 12:44:14 【问题描述】:

好吧,由于 Other problem(solved) 仍未解决,我正在考虑使用 POSTMan 对客户端库将执行的每个步骤进行反复试验。

所以我再次阅读了Google OAuth2的Basic steps,在开发控制台的Api Manager > Credentials处创建了另一个OAuth 2 ID,ID类型为Web Application,并将它们填写到POSTMan中:

    POSTMan 中的新选项卡,然后单击授权标签。 选择类型为 OAuth 2.0 并选择“将令牌添加到 url” 授权网址:https://accounts.google.com/o/oauth2/v2/auth 访问令牌 URL:https://www.googleapis.com/oauth2/v4/token 客户 ID:[我刚刚收到的客户 ID] Client Secret:[我刚刚收到的 Client Secret] 范围:[空] 授权类型:授权码 在本地请求访问令牌:已选择 点击“请求令牌” POSTMan 回复我:“无法完成 OAuth2.0 登录”

我错过了什么吗?

(Google 重定向 URI 可以找到 here)

(API范围可以找到here)

【问题讨论】:

【参考方案1】:

只有当谷歌用户通过谷歌登录页面登录时,您才能获得访问令牌。

第 1 步: 重定向 https://accounts.google.com/o/oauth2/auth?client_id=" + GoogleClientID + "&redirect_uri=" + Url.Encode(GoogleRedirectURL) + "&response_type=code&scope=email"

第 2 步: 现在您在谷歌登录页面上,您将输入您的谷歌凭据。

第 3 步: Google 会将您重定向回您在 Google Developer Console 中配置的 redirect_uri,您可以从 QueryString 中获取“代码”

第 4 步: 现在您将表格发布到https://www.googleapis.com/oauth2/v4/token 带有 client_id、client_secret、redirect_uri、code(您在步骤 3 中获得)和 grant_type=authorization_code

结果:您现在应该会收到来自 Google 的 access_token

【讨论】:

【参考方案2】:

BigHomie 对“电子邮件”范围的建议也对我有用。 但是我使用了与 BigHomie 不同的 Auth URL 和 Access Token URL,因为我认为它已经更新了。

授权网址: https://accounts.google.com/o/oauth2/auth

访问令牌网址: https://accounts.google.com/o/oauth2/token

【讨论】:

【参考方案3】:

我按照 Rajat 的指示进行操作,但之后我再次尝试了 OP 所做的操作,但这次将范围设置为“电子邮件”而不是将其留空,我收到了输入我的 gmail 凭据的提示,并且能够获取访问令牌。

【讨论】:

以上是关于无法在 POSTMan 上获取 Google oAuth 2 令牌的主要内容,如果未能解决你的问题,请参考以下文章

Express 服务器无法在 Postman 上获取 /products

无法通过 Postman 在 Django oauth 工具包客户端凭据授予中获取访问令牌

REST api/postman - 无法获取/路由错误

【Google pay接入】获取refresh_token

如何通过 Postman (API) 在 Jetstream 上注册

无法使用 NodeJS/ExpressJS 和 Postman 获取 POST 数据