在nodejs中调用getToken时Google OAuth2客户端超时

时间:2018-07-17 07:18:07

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

我正在使用Google API进行oauth2。已设置应用程序密钥ID和密钥,并使用oauth2Client.generateAuthUrl成功创建了URL。

    let {google} = require('googleapis'),
    contacts = google.people('v1'),
    oauth2Client = new google.auth.OAuth2(
      "MY_KEY",
      "MY_SECRET",
      "http://localhost:8886/mbl/User/ImportContact"
    ),
    scopes = [
        'https://www.googleapis.com/auth/contacts.readonly',
      'https://www.googleapis.com/auth/plus.me',
      'https://www.googleapis.com/auth/calendar'
    ],
    url = oauth2Client.generateAuthUrl({
      access_type: 'online',
      scope: scopes
    });

在URL中,我授权了访问,然后将其重定向到指定的oauthcallback方法。代码的格式为

  

4 / AADYYeZzY38aKLr1g11IBN2d_9keAdtN2JhDU1WH5pHAPi_0ECfRVS4a-oDiCE5IHPiB3SnyJ4p59ZEFOOSEDFQ#

看起来不错。

但是,代码执行卡在oauth2Client.getToken处。它永远不会超过下一行

const {tokens} = await oauth2Client.getToken(code)

过一会儿,它给我超时错误:

  

错误:连接ETIMEDOUT 216.58.199.10:443

有人可以帮我吗?我整天都在为此苦苦挣扎。

1 个答案:

答案 0 :(得分:1)

oAuth2Client.getToken可能会在回调中从所需的令牌中返回所需的令牌。您可能希望在使用异步之前将其分配给他人-等待它。