0

我有后端应用程序,我在其中使用 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);
});

问题是我使用usernamepassword字段basicAuth来与主要的 REST API 进行通信。因此,我必须将两个字段 (usernamepassword) 保留在会话中(您可以在我的 localstrategy 回调中看到这一点)以将它们用于外部服务器的 basicAuth。我怎样才能使它安全?我想将它存储在会话中不是一个好主意,因为会话保存在 cookie 中,对吗?我如何将会话数据存储在服务器上,而仅将会话/用户 ID 存储在服务器上?

4

1 回答 1

1

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

于 2013-09-14T19:07:08.023 回答