如何从授权码中获取谷歌身份验证令牌?

Posted

技术标签:

【中文标题】如何从授权码中获取谷歌身份验证令牌?【英文标题】:How to get google auth token from authorization code? 【发布时间】:2016-04-13 12:00:20 【问题描述】:

我尝试如下获取身份验证令牌:

https://accounts.google.com/o/oauth2/token?client_id=xxxxxxxxx&client_secret=xxxxxxxxxxx&grant_type=authorization_code&code=xxxxxxxxxx&redirect_uri=https://bigquery.cloud.google.com/dataset/projectid:datasetid

虽然我已经指定了 grant_type 参数,但我仍然收到以下错误:

  "error" : "invalid_request", "error_description" : "Required parameter is missing: grant_type" 

我在这里做错了什么?

【问题讨论】:

【参考方案1】:

您需要使用 HTTP POST 并将值放在 POST 参数中,而不是在 HTTP GET 请求中将它们作为查询参数提供。

【讨论】:

你是如何发送的;哪种工具/环境/语言? 命令行 curl 看起来像:curl -d "client_id=xxxxxxxxx&client_secret=xxxxxxxxxxx&grant_type=authorization_code&code=xxxxxxxxxx&redirect_uri=https://bigquery.cloud.google.com/dataset/projectid:datasetid" https://accounts.google.com/o/oauth2/token;你应该可以用那个来验证 成功了。谢谢。我正在使用邮递员,但它在那里不起作用。 您能告诉我如何获取“code”参数的值吗?我只有 client_id 、 client_secret 和 redirect_uri accounts.google.com/o/oauth2/v2/… 在这个url中填入response_type和client_id,在浏览器中点击url。它将为您提供通过邮件 id 登录的选项。选择,然后您将在浏览器中看到一个 url,其中有 1 个参数作为代码。

以上是关于如何从授权码中获取谷歌身份验证令牌?的主要内容,如果未能解决你的问题,请参考以下文章

如何在节点 js 的服务器端验证谷歌身份验证令牌?

如何从.Net Core API 中的身份验证 JWT 令牌中获取身份用户?

身份验证令牌和授权如何在 reactjs 中工作?

谷歌帐户的不同身份验证令牌

使用用户名和密码获取谷歌身份验证令牌

NET Core 3.1 MVC 授权/身份验证,带有在单独的 Net Core 3.1 Web Api 中从外部获取的令牌 (JWT)