我正在为Google oauth使用护照,我也想使用它进行API调用。所有的googleapi文档都是围绕使用Google自己的身份验证库进行的。
特别是,快速入门结束时在calednar.events.list调用中看到的auth对象中包含什么,如何将其从通行证中删除?
https://developers.google.com/google-apps/calendar/quickstart/nodejs
最佳答案
在这种情况下,auth
是OAuth2
对象。您可以在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
});
});