“JWT无效:观众检查失败。”尝试从Google

时间:2016-05-19 18:58:29

标签: oauth oauth-2.0 jwt

我正在尝试从谷歌获取OAuth2令牌并继续获得此回复:

{
  "error": "invalid_grant",
  "error_description": "Invalid JWT: Failed audience check. The right audience is https://www.googleapis.com/oauth2/v4/token?grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1cGRhdGUtbG9jYXRpb24tZGF0YUB0b3RlbWljLWd1aWxkLTEyOTIyMC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInNjb3BlIjoiaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vYXV0aC9wbHVzLmJ1c2luZXNzLm1hbmFnZSIsImF1ZCI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92NC90b2tlbiIsImlhdCI6MTQ2MzY4MjEwOSwiZXhwIjoxNDYzNjg1NjQ5fQ==.a09YUnpiY0FZZFZDUm5PaC91ZkV6ZUtJNGp4WWRWcHY3eFhHNVBXTmw2TGNjZ0JKZThTS2pENitldGNqZzFPMlRRMmNEWWx0aHBNU2k4NS9GeVhnQXdaMHRXVTVEbmcxcXFXQzFRYlp6NmNTZFNlcUt3TElGZjRLeHJCTTgxcVBmVSttQTM0dmprTGtSeEVsWC8vNGpTNDdYM0dobEk2THJOL2xOa2tXcnpEZlk2K1QrNk5OSndyTXhOaTZmcFdXQ09KVE9Gd0tVSnZjYnR1VWNLYnVXbzBqVEhqL056aHBPbkROVW1SSEpYY2JpU3VxVWdRai9PZldiR1p5bzJFK3ZtRzQ5NXdmdDdMMXJkQWdMZkZPcitpeWZVd1FneXVmZFUrRGd1dlZPOWdZSENrS1Fnd0tZb0tUbjNIU29Bcm13OE9OL0RFdkVPM2N2YjhTbFoxbjhRPT0="
}

服务帐户(我正在使用)的文档在这里: https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests

他们说:

“断言的预期目标的描述符。在进行访问令牌请求时,此值始终为https://www.googleapis.com/oauth2/v4/token。”

因此,当我形成我的声明集时,它看起来像这样:

{"iss":"********.iam.gserviceaccount.com","scope":"https://www.googleapis.com/auth/plus.business.manage","aud":"https://www.googleapis.com/oauth2/v4/token","iat":1463683812,"exp":1463687352}

有谁知道可能导致我的观众检查失败的原因以及我应该使用什么作为该值?我的令牌请求的其他部分是否可能不正确,它只是说我的受众群体检查失败了?

3 个答案:

答案 0 :(得分:3)

您的客户端代码看起来将参数作为查询参数传递给令牌端点,而不是所需的POST参数。

答案 1 :(得分:1)

截至目前(2020年2月7日),aud的值为

https://oauth2.googleapis.com/token

Link.下面的屏幕截图。


在执行OP时,是

https://www.googleapis.com/oauth2/v4/token

Google ID platform screenshot

答案 2 :(得分:0)

对我来说,将这些参数发送到正文中,而不是在查询中使用它们。

Postman send POST example

我的声明集:

var now = ~~(Date.now() / 1000);
var data = {
  "iss": "xxxxxxxxxxx@developer.gserviceaccount.com",
  "scope": "https://www.googleapis.com/auth/prediction",
  "aud": "https://www.googleapis.com/oauth2/v4/token",
  "iat": now,
  "exp": now + 3600
}