在会话中存储秘密数据

时间:2013-09-14 19:01:36

标签: node.js express passport.js

我有后端应用,其中我使用的是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进行通信。所以我必须在会话中保留两个字段(basicAuthusername)(你可以在我的localstrategy回调中看到这个),将它们用于外部服务器的basicAuth。我怎样才能安全?我想将它存储在会话中并不是一个好主意,因为会话被保存在cookie中吗?如何在服务器上存储会话数据,只在服务器上存储会话/用户ID?

1 个答案:

答案 0 :(得分:1)

会话数据存储在服务器端,因此只要您不让客户端访问它,就可以安全地将用户名和密码存储在会话中。会话不存储在cookie中,而是cookie告诉服务器哪个会话与客户端关联。

相关问题