我正在使用活动目录来验证用户身份,所以我认为我不需要使用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我不知道如何使用它。
答案 0 :(得分:0)
通常,服务器通过cookie或JWT(json网络令牌)发送回包含一些有用数据(用户或会话ID,有效期)的令牌。
然后,客户端将令牌放入对服务器的每个请求中。服务器验证到期日期并处理请求。
浏览器会自动将Cookie放入请求中。您的客户代码应将JWT放入请求中。