如何解决如何从googleapis获取access_token?
我正在尝试获取访问令牌,以用于从服务帐户访问Firebase托管API,如here所述。
下面的代码不会返回access_token,而是返回一个id_token,该ID_token在尝试使用API时无法通过身份验证。
我究竟做错了什么?如何获取访问令牌?
const { google } = require("googleapis");
var serviceAccount = require("../functions/src/services/serviceAccountKey.json");
async function getAccessToken() {
try {
const jwtClient = new google.auth.JWT(
serviceAccount.client_email,null,serviceAccount.private_key,["firebasehosting.googleapis.com"],null
);
const credentials = await jwtClient.authorize();
console.log(credentials);
} catch (error) {
console.log(error);
}
}
getAccessToken();
它返回一个凭证对象:
{
access_token: undefined,token_type: 'Bearer',expiry_date: undefined,id_token: '...',// edited out
refresh_token: 'jwt-placeholder'
}
解决方法
记录下来,我终于明白了。
我的令牌范围无效:我应该使用https://www.googleapis.com/auth/firebase
有效范围已列出here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。