セッションを外部ストレージに保存する場合は、再起動後にセッションを使用可能にする必要があります。
パスポートはセッションの責任を負いません。エクスプレスでパスポートとは別にセッションを設定します。 Passportは、セッションを使用する戦略を備えた認証ミドルウェアです。 あなたのセットアップ特急セッション:
app.use(express.session(session options));
その後セッションを使用するinitとセットアップパスポート:
app.use(passport.initialize());
app.use(passport.session());
にそれは関係なく、あなたがパスポートを使用するかどうかの、セッション構成は同じであることを意味し。
セッションを永続化する方法はいくつかあります。 これらのセッションのほとんどは、セッションをdbまたはファイルシステムに格納しています(メモリの記憶域はdev envでのみ適切です)。このnpmの検索リストlinkを見てください。公式エクスプレス・セッションのページから互換性のあるセッションストアの
一覧https://github.com/expressjs/session#compatible-session-stores
JWTトークン、適切に実装されている場合、ステートレスです。これは、サーバーにセッションデータが格納されていないことを意味します。有効なセッション数はわかりません。それは、有効なjwtトークンを持っているかどうかを要求します。
Jwtトークンには、ユーザーIDと同じように、いくつかのデータを保存できます。サーバーがトークンを受け取ると、サーバーはそれをデコードして検証し、このトークンからのデータにアクセスできます。詳細については、この記事をお読みください:
https://stormpath.com/blog/jwt-the-right-way/
最も重要な部分(より重要なことは、buttheseが時々忘れられている、があります):あなたがどんな情報を信頼する前に
は必ず署名を検証しますJWT
と:
https://www.npmjs.com/package/json-web-token
、あるいはいくつかのハイブリッドソリューションモジュール(JWTトークンとのRedisセッション)について:
JWTを維持するためには、このモジュールを見てくださいJWT
に機密データが含まれていません。
https://www.npmjs.com/package/jwt-redis-session
答えのためのおかげで、私はまた、memcachedをhttps://www.npmjs.com/package/memcachedについて聞いてきました私の質問は、memcachedはredisより速いですか?それはあなたがすべての長所と短所を検討することを提案するだろうか? – romir
メモリストレージです。したがって、セッションのデータはより高速になるはずですが、セッションのデータは辛抱強くはありません。この答えを見てください(これはPHPについてですが、このケースは似ています)http://stackoverflow.com/a/13946349/4138339 –
投稿を編集してこのリンクを追加します:https://github.com/expressjs/session#compatible -session-stores –