私はexpress + postgresバックエンドを持っており、私はFB oauthのためにパスポート - フェイスブックを使用しています。ログインに成功すると、SPAがロードされるホームページにリダイレクトされます。 JWTでセッションクッキーを使用しているのは悪い考えですか?
ユーザーが/
に私のアプリにヒットし、localStorageに有効なトークンを持たない場合は、/login
になります。
私の/login
ページ(よく似た「Facebookに続行」メッセージが表示されます)は、サーバーのレンダリングです(さまざまな理由で)。このボタンをクリックすると、ユーザーが存在するかどうかを確認し、最初のJWTでセッションCookieを送信するか、新しいユーザーを作成して最初のJWTでセッションCookieを送信します。いずれの場合も、成功条件は/
にリダイレクトされ、SPA資産を提供したことです。
SPAが最初に行うことの1つは、セッションクッキーからJWTを取り出し、それをlocalstorageに入れてからクッキーを削除することです。
これはひどいアプローチですか、それとも私のユースケースで有効ですか?
ありがとうございます。私は 'res.cookie( 'auth'、req.token)'をやっています。これはセッションCookieと見なされますか、間違った用語を使用していますか?私はオプションを渡すつもりはないし、ユーザーがブラウザを閉じるとクッキーが消えてしまいたい。 – scarywolfman
いいえ、これはサーバーでセッションを作成しない通常のCookieです。有効期限を設定していないため、ブラウザを再起動するとCookieが消えます。これは私がそれをやることを提案した方法です – pedrofb