問題タブ [cookie-session]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
express - cookie-session npm ライブラリを使用して Cookie にセッション データを設定する
説明 現在、ノード バックエンドにいくつかのセッション認証ロジックを実装しようとしていますが、開発環境に問題があり、トラブルシューティングできないようです。
バックエンド: 高速ライブラリを持つノード: cookie-session
ドキュメントへのリンク: https://www.npmjs.com/package/cookie-session
EC2 インスタンスで実行中のサーバーをセットアップ します (安全ではありません)。ただし、ec2 インスタンスで https 経由で ngrok プロキシ サーバーをポイントしています。
サーバー.js
予期される動作 セッション ID は、セッション プロパティでのテストの最終要求値をデシリアライズして提供します。
現在の動作 セッションには何も設定されていません
express - Express 署名付き Cookie と認証用の Cookie としての JWT
最初に言っておきますが、これはクライアント トークンとサーバー側のセッション参照の問題ではありません。私は違いを理解しており、セッションレスの実装を既に決定しています。
また、localStorage、クエリ パラメータ、認証ヘッダーなどではなく、クライアント側の永続性と送信に Cookie を使用することにしました。
わかりました。それで、クライアントにユーザー ID を保存するための 2 つの代替案を検討しています。どちらも、データの署名による改ざんを防ぎます。
Express には、署名付き Cookie を有効にするミドルウェアがあります。または、データに署名する JWT を使用することもできます (これも Cookie 経由で送信します)。
これまでのところ、署名付き Cookie を使用することを考えています。処理のオーバーヘッドが少なく、特定のことを行います。ネストされた json 形式のデータは必ずしも必要ではありません。また、API やその他の承認ではなく、Web サーバーでのユーザーの認証にのみ使用しています。公開/秘密の非対称キーの検証は必要ありません。
JWT は優れた標準であり、私はすでに OAUTH に使用していますが、私のサイト認証には、いくつかの利点は必要ありません。たとえば、転送可能性には必要ありません。異なる署名アルゴリズムやトークン タイプはありません。
ただし、JWT が認められた標準であり、多くのサポート/ドキュメントがあることを高く評価しています。
Web サイトの承認とクライアントの識別に JWT を使用することを選択する必要がある理由について、私が見逃しているものはありますか?
ところで、質問を投稿する前に、これについて調査しました。これは非常によく似たものです。トークンベースの認証のための JWT と Cookie の比較です。
ただし、トップ投票の回答はいくつかの理由で当てはまりません。主に、JWT に Cookie を使用するかどうかは既に決めています。CSRF 攻撃を防ぐために、sameSite のようなオプションで Cookie を使用します。