1. ホーム
  2. javascript

[解決済み] Node.jsとExpress.jsのセッションはどのように機能するのですか?

2022-12-13 03:15:52

質問

使用方法 Express.js を使えば、セッションは非常にシンプルになります。しかし、実際にどのように動作するのか気になるところです。

クライアント上に何らかのクッキーを保存するのでしょうか?もしそうなら、そのクッキーはどこで見つけることができますか? 必要な場合、それをどのようにデコードすればよいのでしょうか。

私は基本的に、ユーザーがその時点で実際にサイトにいない場合でも、ユーザーがログインしているかどうかを確認できるようにしたいのです(他のサイトにいるときにログインしていることをfacebookが知っている方法のような)。しかし、それを理解するためには、まずセッションがどのように機能するかを理解する必要があると思います。

どのように解決するのですか?

によると、Express.jsを使ったことがないのですが、どうすればいいのでしょうか? のドキュメントによると によると、そのようです。

  • クッキーは、キー(サーバーがセッションデータを取得するために使用)とハッシュ(サーバーがクッキーのデータが改ざんされていないことを確認するために使用するもので、値を変更しようとするとクッキーは無効になります)を使って、クライアントに保存されます。

  • セッションデータは、いくつかのフレームワークとは対照的に(たとえば プレイフレームワーク !) はサーバーに保持されるため、クッキーは実際のセッションデータのホルダーというよりも、セッションのプレースホルダーのようなものです。

  • から ここから を見ると、サーバー上のこのセッションデータはデフォルトでメモリに保持されているようですが、適切な API を実装しているストレージ フォームに変更することができます。

というわけで、もしあなたが特定の req リクエストオブジェクトなしで確認したい場合は、おっしゃるとおり、同じストレージにアクセスする必要があります。最初のドキュメントのページの一番下に、ストレージが実装する必要がある必須メソッドが詳しく書かれています。 .getAll() を実行し、セッションデータをループして好きな値を読み取ることができるかもしれません。