首先有点背景;我有一个基于PHP的应用程序,它处理Google OAuth流程并将生成的访问令牌存储在数据库中。我可以在另一个PHP脚本中完全使用此访问令牌,因此我认为令牌已过期。
当我尝试在node.js脚本中使用访问令牌时出现问题。我总是从Google API中收到此错误。
{[错误:凭据无效] 代码:undefined, 错误: [{domain:'global', 原因:'authError', 消息:'证书无效', locationType:'header', 位置:'授权'}]}
我正在使用的node.js代码供参考,如下所示;
var CLIENT_ID = 'CLIENT_ID';
var CLIENT_SECRET = 'CLIENT_SECRET';
var REDIRECT_URL = 'REDIRECT_URL';
var oauth2Client = new OAuth2Client(CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);
oauth2Client.setCredentials({
access_token: 'ACCESS_TOKEN'
});
var analytics = google.analytics('v3');
analytics.management.accounts.list({
auth : oauth2Client
}, function(err, resp) {
console.log(err);
console.log(resp);
});
我尝试在测试脚本中对access_token值进行硬编码,但结果仍然相同。
欢迎任何建议!
答案 0 :(得分:2)
在深入了解PHP和Node.js API库的代码之后,我找到了答案。
PHP API客户端自动检查令牌是否无效,然后在不告诉您(从我可以看到)的情况下更新它。我存储的令牌无效,因此我只需要在Node.js脚本中手动刷新它。