我正在使用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
有人可以帮我吗?我整天都在为此苦苦挣扎。
答案 0 :(得分:1)
oAuth2Client.getToken可能会在回调中从所需的令牌中返回所需的令牌。您可能希望在使用异步之前将其分配给他人-等待它。