私はこの回答を他の場所で見てきましたが、何も見つかりませんでした。パスポート設定セッションオプション?
設定に関するパスポートのドキュメント:http://passportjs.org/docs/configureは、「セッション」部分がオプションであることを意味します。
は、私が最も現実世界のアプリケーションでは、永続的なセッションを必要とする知っているが、学習目的のために、私はこれをインクリメンタルに構築し、したいしようとしています:永続的なログインセッションを参照するとき以降のドキュメントで、それはまた、このことを意味しますログイン作業をして、パスポートなしで成功ページにリダイレクトして自分のユーザーをシリアル化しようとしています。If your application uses persistent login sessions, passport.session() middleware must also be used.
現在、私は悪いパスワードと悪いユーザー名の両方を正しく失敗ページにリダイレクトしています。私は良い資格情報を入力し、dbのユーザーを見つけると、私は成功のページにリダイレクトしません。代わりに、私は次のエラーを取得する:
Error: Failed to serialize user into session
私は、次の追加知っている問題を解決します:
passport.serializeUser(function(user, done) {
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
User.findById(id, function(err, user) {
done(err, user);
});
});
私は私のユーザーをシリアル化しないようにパスポートを設定するにはどうすればよいですか?これも可能ですか?
セッションを使用するだけで、文字通りそれを動作させるには数行のコードしかありません。あなたは明示的なセッションパッケージ 'npm install express-session'をインストールし、それを必要とする前にそれをインストールする必要があります(' 'app.use(' 'session(...))' 'と' 'app.use(passport.session 'var session = require( 'express-session')'を使用してください。それでおしまい。 – Molda
@Molda認証状態を追跡する別の方法(JWTを使う方法、ブラウザで消費されないWebアプリケーションを実装する方法など)を好む人もいるので、それは有効な質問です。 – robertklep
@robertklep私は全く同意します。しかし、** "学習目的のために**" **私はそれが働くために、それが最も簡単で最も速い方法だと思った、私は間違いなく最高のソリューションとしてそれをお勧めしようとしなかった。私はJWTを自分で使います。 – Molda