使用护照验证googleapi节点库

时间:2017-09-12 10:07:43

标签: javascript node.js oauth google-api-nodejs-client

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

特别是,auth对象中包含的内容,如快速入门末尾的calednar.events.list调用中所示,以及如何从护照中获取它?

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

2 个答案:

答案 0 :(得分:0)

您只需添加desired scopes即可访问Google Calendar API。

-Jim

答案 1 :(得分:0)

在此上下文中,

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