无护照认证

时间:2018-09-14 00:22:43

标签: node.js express authentication passport.js

我正在使用活动目录来验证用户身份,所以我认为我不需要使用Passport,而我要做的就是在密码签出后创建一个带有res的global(?)布尔值。本地以指示用户已通过身份验证。

我已经在控制器功能中尝试过类似的事情:

ad.authenticate(username,password, function(err,auth) {

    //some of the things I tried unsuccessfully -- should be true after logged in
    res.locals.auth = auth
    app.locals.auth = auth //app not defined 

})

但是,我发现,当我调用以后的函数来检查用户是否作为差异路由的中间件登录时,res.locals.auth和app.locals.auth要么为false,要么为undefined。我尝试使用下面的代码在我的server.js文件中设置两个var,但这都不起作用...

 app.use((req, res, next) => {
  app.locals.auth = false;
  res.locals.auth = false;
  next();
});

所以我的问题是,我应该在哪个var /位置保存身份验证状态?还是我应该使用护照而不是因为我没有意识到某些安全问题?护照设置示例中的isMemberOf有什么意义?
https://www.npmjs.com/package/passport-activedirectory

我要做的只是检查用户凭据,并基本上在Passport中重新创建req.isAuthenticated,因为由于isMemberOf我不知道如何使用它。

1 个答案:

答案 0 :(得分:0)

通常,服务器通过cookie或JWT(json网络令牌)发送回包含一些有用数据(用户或会话ID,有效期)的令牌。

然后,客户端将令牌放入对服务器的每个请求中。服务器验证到期日期并处理请求。

浏览器会自动将Cookie放入请求中。您的客户代码应将JWT放入请求中。