首页 > 解决方案 > OAuth2Client.getToken 始终返回“未定义”

问题描述

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

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

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')
  }
});

标签: node.jsoauth-2.0google-apigoogle-oauth

解决方案


推荐阅读