没有Passport.js或everyauth的Expressjs FB登录

时间:2015-01-11 03:32:40

标签: node.js facebook-graph-api express oauth-2.0

我已经搜索了几个小时,但无法通过Passport或Everyauth找到适用于Express的Facebook登录解决方案。是否有关于nodejs的服务器端oAuth 2.0 FB登录的示例或教程?或者有没有办法使用默认的快速会话,让护照只处理初始身份验证而不进行序列化/反序列化?

3 个答案:

答案 0 :(得分:1)

我编写/维护express-stormpath库,为你执行此操作。

这是一个示例应用(完整的):

var express = require('express');
var stormpath = require('express-stormpath');

var app = express();
app.use(stormpath.init(app, {
  application: 'https://api.stormpath.com/v1/applications/xxx',
  secretKey: 'some_long_random_string',
  enableFacebook: true,
  social: {
    facebook: {
      appId: 'xxx',
      appSecret: 'xxx',
    }
  },  
}));

app.listen(3000);

显然,这需要您创建Facebook应用并设置一些配置选项,此文档解释了如何执行此操作:https://docs.stormpath.com/nodejs/express/product.html#use-facebook-login

希望有帮助=)

答案 1 :(得分:0)

这将为您提供警报数据,使用FB AppId

 <div id="fb-root"></div>
 <script src="https://connect.facebook.net/en_US/all.js"></script>
 <script>
           var facebookAppId = 'XXXXXX';
           var _fBAccessToken ='';
           window.fbAsyncInit = function() {
             FB.init({
                 appId: facebookAppId,
                 xfbml: true,
                 version: 'v2.0',
                 status: true,
                 cookie: true,
                 oauth: true
             });

 FB.getLoginStatus(function(response) {
      if ((response.status)&&(response.status=='connected')) {
                     userId = response.authResponse.userID;
                     _fBAccessToken = response.authResponse.accessToken;
                     FB.api('/me', function(responsed) {
                         alert(JSON.stringify(responsed))
                     },{scope:'public_profile,email'});
 })
</script>

答案 2 :(得分:0)

我设法找到的有关香草node.js /快速身份验证的唯一有用文档是Facebook的:https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow/

首先必须在https://developers.facebook.com/apps设置应用程序(用于dev / localhost的测试应用程序和将要运行的产品应用程序),但是一旦完成,这就是标准的oauth过程,只有几个facebook特定选项