我正在为Google oauth使用护照,我也想使用它进行API调用。所有的googleapi文档都是围绕使用Google自己的身份验证库进行的。

特别是,快速入门结束时在calednar.events.list调用中看到的auth对象中包含什么,如何将其从通行证中删除?

https://developers.google.com/google-apps/calendar/quickstart/nodejs

最佳答案

在这种情况下,authOAuth2对象。您可以在the googleapis source code的每个请求中看到如何处理它。例如,您可以在上下文范围内进行设置,如下所示:

google.calendar({
    version: 'v3',
    auth: oauth2Client
})


或在每个请求中(如入门示例代码)。



当您想将其用于护照时,假设/auth/google是auth端点,您可能会遇到类似以下的情况:

function userLogged(req, res, next) {
    if (req.isAuthenticated())
        return next();
    res.redirect('/auth/google');
}

app.get('/calendarList', userLogged, function(req, res) {

    // req.user is the login user

    var oauth2Client = new OAuth2(
        config.clientID,
        config.clientSecret,
        config.callbackURL
    );

    oauth2Client.credentials = {
        access_token: req.user.access_token,
        refresh_token: req.user.refresh_token
    };

    var calendar = google.calendar('v3');
    calendar.events.list({
        auth: oauth2Client,
        calendarId: 'primary',
        timeMin: (new Date()).toISOString(),
        maxResults: 10,
        singleEvents: true,
        orderBy: 'startTime'
    }, function(err, response) {
        // process result
    });
});

10-07 20:00
查看更多