如何在邮递员中从google api的refres令牌获取新的访问令牌

发布于 2025-01-11 07:51:45 字数 546 浏览 0 评论 0原文

我正在尝试从 Google Drive api 的刷新令牌中获取新的访问令牌。在我的谷歌游乐场中,它可以工作,但是当我想在邮递员或我的代码中创建相同的请求时,它不起作用,并且我总是收到错误“无效的大类型”。我不知道找出什么问题。

谷歌开发者游乐场 输入图片此处描述

邮递员标头和正文 输入图片此处描述输入图片此处描述

I am trying to get new access token from my refresh token for google drive api. In my google playground it works but when I want to create the same request in postman or my code it doesn't work and I always get error "Invalid grand type". I don't know to find what is problem.

google developers playground
enter image description here

postman headers and body
enter image description here
enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那伤。 2025-01-18 07:51:45

您需要了解 Oauth2 舞蹈分为三个步骤。

第一步是请求用户访问并获取授权码。

HTTP GET https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope =https://www.googleapis.com/auth/analytics.readonly&response_type=code

注意&response_type=code 告诉服务器您想要返回授权码。

  1. 第二步是将该代码交换为访问令牌和刷新令牌。

发布https://accounts.google.com/o/oauth2/token
代码=4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientId}.apps.googleusercontent。 com&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code

请注意其中显示 &grant_type=authorization_code 的部分。这告诉服务器您正在向他们提供授权码。

3 最后一步是刷新您的访问令牌。

发布https://accounts.google.com/o/oauth2/token
client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&refresh_token=1/ffYmfI0sjR54Ft9oupubLzrJhD1hZS5tWQcyAvNECCA&grant_type=refresh_token

注意&grant_type=refresh_token您正在告诉要发送它们的服务器刷新令牌。

您发送的刷新令牌似乎具有错误的授权类型。

我有一个关于如何设置邮递员以使用 google oauth2 的视频

注意:由于最近的更改制作通过使用更安全的 OAuth 流,Google OAuth 交互更安全 urn:ietf:wg:oauth:2.0:oob 的重定向 uri 即将停止工作。

You need to understand that there is three steps to the Oauth2 dance.

step one is requesting access of the user and getting the authorization code.

HTTP GET https://accounts.google.com/o/oauth2/auth?client_id={clientid}.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/analytics.readonly&response_type=code

Note &response_type=code tells the server you want an authorization code returned.

  1. step two is to exchange that code for an access token and refresh token.

POST https://accounts.google.com/o/oauth2/token
code=4/X9lG6uWd8-MMJPElWggHZRzyFKtp.QubAT_P-GEwePvB8fYmgkJzntDnaiAI&client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code

Note the part where it says &grant_type=authorization_code. this tells the server you are giving them an authorization code.

3 the final step is refreshing your access token.

POST https://accounts.google.com/o/oauth2/token
client_id={ClientId}.apps.googleusercontent.com&client_secret={ClientSecret}&refresh_token=1/ffYmfI0sjR54Ft9oupubLzrJhD1hZS5tWQcyAvNECCA&grant_type=refresh_token

Note &grant_type=refresh_token you are telling the server you are sending them a refresh token.

You appear to be sending a refresh token with the wrong grant type.

I have a video on how to set up postman to use google oauth2

Note: Due to a recent change with Making Google OAuth interactions safer by using more secure OAuth flows redirect uri of urn:ietf:wg:oauth:2.0:oob is going to stop working soon.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文