OAuth2Client.getToken始终返回“未定义”

时间:2020-09-26 17:28:26

标签: node.js oauth-2.0 google-api google-oauth

我正在遵循https://github.com/googleapis/google-api-nodejs-client#installation官方指南,使用OAuth2部分中的“身份验证和授权”入门

遵循这些非常简单的几行代码根本无法工作。我已正确重定向,然后登录并允许请求的范围。至此,我被重定向到回调URL,成功解析了查询字符串中的代码,并通过调用oauth2Client.getToken(code)将其传递给我的OAuth2Client对象。这是我完全迷失的地方,因为无论此方法是什么,总是返回“ undefined”。完全没有错误,只是“未定义”。至少可以说不是很有帮助。

const {google} = require('googleapis');

const oauth2Client = new google.auth.OAuth2(
  'hidden',
  'hidden',
  'hidden'
);

/* GET home page. */
router.get('/home', function(req, res, next) {
  try {
    if (req.url.indexOf('/home') > -1) {

        var code = req.query.code;
        var error = req.query.error;
        var session = req.session;

      if(code!=null){
        const {tokens} =  oauth2Client.getToken(code); //Always returns undefined?
        oauth2Client.credentials = tokens; 
      }
      else{
        res.redirect('/');
      }
    }
  } catch (e) {
    res.redirect('/err')
  }
});

0 个答案:

没有答案