使用服务api保护HTTP端点

时间:2016-04-27 19:22:47

标签: node.js single-sign-on passport-facebook

下面是代码,我尝试使用第三方提供商进行身份验证。我的身份验证调用是在不同服务器上运行的服务api。如何在我的代码中验证用户

//app.js
app.use(passport.initialize());
// Create our Express router
var router = express.Router();
router.route('/test')
    .get(**<first authenticate user using service api http://localhost:1000/authenticate>**, serviceController.getData);
app.listen(2000);

//authController.js
var app = express();
var router = express.Router();
router.post("/authenticate",function(req,res){
//Using third party providers like LDAP or Facebook using Passport
res.send("User authenticated");//Token will be send
});
app.listen(1000);

//authController.js - as function call it is working
var passport = require('passport');
var BasicStrategy = require('passport-http').BasicStrategy;

passport.use(new BasicStrategy(
    function (username, password, callback) {
        // Success
        //return callback(null, true);
    }
));

exports.isAuthenticated = passport.authenticate('basic', { session: false });

是否可以使用LDAP或Facebook身份验证来保护我的api http://localhost:2000/test。我正在寻找类似于SSO的东西。

  

预期结果

当我点击http://localhost:2000/test时,必须向http://localhost:1000/中运行的LDAP或facebook服务器发出请求以验证用户并从“用户身份验证”发送响应。 任何有关这方面的帮助都会非常有用。

1 个答案:

答案 0 :(得分:0)

使用node.js

可以实现这一目标

Passport提供了大量不同的登录可能性:twitter,google,facebook,linkedin,instagram。它们也很容易实现。

在此处查看:http://passportjs.org/docs