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);
});

問題は、メインの REST API と通信するためにusernameandpasswordフィールドを使用することです。basicAuthしたがって、両方のフィールド (usernameおよびpassword) をセッション内に保持する必要があります (これは localstrategy コールバックで確認できます)。これらを外部サーバーの basicAuth に使用します。どうすれば安全にできますか?セッションはCookieに保存されるため、セッション内に保存することはお勧めできません。セッションデータをサーバーに保存し、セッション/ユーザーIDのみをサーバーに保存するにはどうすればよいですか?

4

1 に答える 1

1

セッション データはサーバー側に保存されるため、クライアントにアクセスさせない限り、ユーザー名とパスワードをセッションに保存しても安全です。セッションは Cookie に保存されませんが、Cookie は、どのセッションがクライアントに関連付けられているかをサーバーに伝えるものです。

于 2013-09-14T19:07:08.023 に答える