我有后端应用,其中我使用的是passport.js:
passport.use(new LocalStrategy({
usernameField: 'login',
passwordField: 'passwd'
},function(username, password, done){
// call to external api to check if login & passwd are correct
var user = { user: username, passwd: password };
return done(null,user);
}));
passport.serializeUser(function(user, done) {
done(null,user);
});
passport.deserializeUser(function(id, done) {
done(null,id);
});
问题是我使用username
的{{1}}和password
字段与主REST API进行通信。所以我必须在会话中保留两个字段(basicAuth
和username
)(你可以在我的localstrategy回调中看到这个),将它们用于外部服务器的basicAuth。我怎样才能安全?我想将它存储在会话中并不是一个好主意,因为会话被保存在cookie中吗?如何在服务器上存储会话数据,只在服务器上存储会话/用户ID?
答案 0 :(得分:1)
会话数据存储在服务器端,因此只要您不让客户端访问它,就可以安全地将用户名和密码存储在会话中。会话不存储在cookie中,而是cookie告诉服务器哪个会话与客户端关联。