Google API NodeJS Library OAuth2请求

我正在尝试设置Google API使用授权,以便向网站站长工具API发出请求,但似乎无法理解如何触发身份validation。 我build立了一个路由,它应该在访问时触发authentication权限调用,但是我得到一个连续的负载信号,没有收到数据响应。 我正在使用Google的图书馆https://github.com/google/google-api-nodejs-client/ ,并将我的OAuth2客户端ID凭据redirect到指向http://localhost:3000/ uri,因为我想testing本地安装。

这是我的代码:

index.js

 var express = require('express'); var app = express(); var handlebars = require('hbs'); var google = require('googleapis'); var webmastertools = google.webmasters('v3'); app.set('port', process.env.PORT || 3000); // Handlebars View Engine app.set('view engine', handlebars); app.use(express.static(__dirname + '/public')); // set the public directory app.listen(app.get('port'), function(){ console.log('Server on port'+app.get('port')); }); var routes = require('./app/routes'); app.use(routes); 

这是我的route.js:

 var express = require('express'); var router = express.Router(); var google = require('googleapis'); var OAuth2 = google.auth.OAuth2; var oauth2Client = new OAuth2('*client-id*', '*client-secret*', 'http://localhost:3000/'); router.get('/', function(req, res){ res.render('index.hbs'); }); router.get('/auth', function(req, res){ //generater a url that asks permissions for Webmaster Tools var scopes = [ 'https://www.googleapis.com/auth/webmasters' ]; var url = oauth2Client.generateAuthUrl({ access_type: 'online', scope: scopes }); }); router.get('404', function(req, res){ res.type('text/plain'); res.status(404); res.send('404 - Not Found'); }); router.get('500', function(err,req, res, next){ console.error(err.stack); res.type('text/plain'); res.status(500); res.send('500 - Server Error'); }); module.exports = router; 

我认为你应该redirect到由generateAuthUrl提供的授权URL。 就像是:

 router.get('/auth', function(req, res){ //generater a url that asks permissions for Webmaster Tools var scopes = [ 'https://www.googleapis.com/auth/webmasters' ]; var url = oauth2Client.generateAuthUrl({ access_type: 'online', scope: scopes }); res.redirect(url); }); 

这将把用户带到允许范围的同意页面,然后被redirect到你的redirecturl。 我没有在我面前,但我认为这就是我做到的。