【发布时间】:2019-09-05 22:31:23
【问题描述】:
我有一个使用 HTTPs 端点连接到 Google Chat 的 NodeJS 机器人。我正在使用快递接收请求。我需要验证所有请求都来自 Google,并希望使用 Google 随请求发送的承载令牌来执行此操作。
我的问题是我正在努力寻找验证令牌的方法。
我已捕获令牌并尝试对https://oauth2.googleapis.com/tokeninfo?id_token=ey... 进行 GET 请求(其中 ey... 是令牌开始)。
返回:
"error": "invalid_token",
"error_description": "Invalid Value"
}
我已经尝试过 Google 推荐的方法:
var token = req.headers.authorization.split(/[ ]+/);
client.verifyIdToken({
idToken: token[1],
audience: JSON.parse(process.env.valid_client_ids)
}).then((ticket) => {
gchatHandler.handleGChat(req.body, res);
}).catch(console.error);
并得到以下错误:
错误:找不到信封的 pem:{"alg":"RS256","kid":"d...1","typ":"JWT"}
知道我应该从这里去哪里吗?
编辑:https://www.googleapis.com/service_accounts/v1/metadata/x509/chat@system.gserviceaccount.com 发现了这个,正在研究如何使用它。这个孩子和我得到的那个很相配。
【问题讨论】:
标签: node.js google-api jwt