我正在尝试使用 oAuth 实现谷歌服务器到服务器的身份验证 为此我根据提到的步骤生成了凭据,他们谷歌给了我带有以下详细信息的 json 文件
// this is sample data not real data
{
"type": "service_account",
"project_id": "myapp",
"private_key_id": "17af28d89ef88g59e9c44a51csf00f894c23",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCYTyEAeQxHUP66[OTHER TEXT REMOVED]n-----END PRIVATE KEY-----\n",
"client_email": "someemailname@projectname.iam.gserviceaccount.com",
"client_id": "3246344567234535",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/meshpresentations%40meshslides.iam.gserviceaccount.com"
}
我在 jwt.io 中使用了“private_key”,如下图所示,但它显示“无效签名”,是因为只有提供我私钥的服务器(谷歌)才能验证它是否是有效令牌?如果是这样,当我发出 curl 呼叫时,我会收到另一个错误。
{
“error”: “invalid_grant”,
“error_description”: “Invalid JWT: Token must be a short-lived token and in a reasonable timeframe”
}
我错过了什么?我什至不确定我是否错误地制作了 JWT 令牌或存在其他问题。PS:我是一名学习者。