使用nodejs进行Google身份validation

我正在尝试使用我的node.js服务器访问Google身份validationAPI,但我无法find。 基本上,我希望用户到达我的login页面,点击身份validationbutton,然后服务器将他redirect到Google API,用户允许我的应用程序访问他的数据,然后Google API将用户redirect到我的网站授权令牌。

我已经设置了oauth2所需的url,它似乎工作(如果我把它粘贴到我的网页浏览器,它会redirect到我的谷歌授权页面)。 我看到这个post似乎回答我的问题,但我不怎么处理快递代码部分。

这是我正在使用的代码:

https.get(options, function(res) { var retrieved_data = ''; res.on('data', function(data) { retrieved_data += data; }); res.on('end', function() { // FIXME client_response.writeHead(302, {"Content-Type" : "text/plain", "Location" : res.headers.location}); client_response.end(retrieved_data); }); }); 

但是这个方法在我的客户端页面上返回一个错误(由我的ajax请求的错误字段引发)。 如果我将HTTP代码更改为200,但没有“位置”信息,则会在客户端上显示一个“暂时移动”页面,其中包含一个将我redirect到Google API授权页面的button。

任何build议?

我build议为这个任务使用现有的模块。 Everyauth是一个模块,不仅允许oauth2访问Google,而且还提供给其他大多数平台。 我正在使用这个来访问我的项目。 它也有express整合。

您可以在节点工具箱中查找更多的select。 护照可以想到。

正如Burcu Dogan所述,Google已经发布了一个用于访问Google API的官方客户端库。 它可以在这里find: https : //github.com/google/google-api-nodejs-client/

我已经与Passport有良好的结果(不涉及到MSauthentication计划!)。 我最初尝试了各种方法,但IMO的护照更适合expressjs惯例。

有一个Google身份validation提供程序可以使用: http : //passportjs.org/guide/google/

您可能想在这里查看我的Node.JS + Google Calendar项目: https : //github.com/berryboy/google-calendar

我也有一些使用谷歌oauth的例子。