Google 身份验证 with nodejs



我正在尝试使用我的节点.js服务器访问Google身份验证API,但我找不到方法。基本上,我希望用户到达我的登录页面,单击身份验证按钮,然后服务器将他重定向到 Google API,用户允许我的应用程序访问他的数据,然后 Google API 使用授权令牌将用户重定向到我的网站。

我已经设置了 oauth2 所需的网址,它似乎可以工作(如果我将其粘贴到我的网络浏览器中,它会将我重定向到 google 授权页面上)。我看到了这篇文章,它似乎回答了我的问题,但我不知道如何处理快速代码部分。

这是我使用的代码:

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,它会在客户端上显示一个"临时移动"页面,其中包含一个按钮,可将我重定向到 Google API 授权页面。

有什么建议吗?

我建议使用现有的模块来完成该任务。 每个模块不仅允许OAuth2访问Google,还允许大多数其他提供它的平台。我正在使用它访问我的项目的推特。它也具有express集成。

您可以在节点工具箱中寻找更多替代方案。护照浮现在脑海中。

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

我在使用Passport时取得了不错的结果(与MS身份验证方案无关! 我最初尝试了所有方法,但IMO护照更适合expressjs约定。

有一个可供使用的谷歌身份验证提供程序:http://passportjs.org/guide/google/

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

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

相关内容

  • 没有找到相关文章

最新更新