Node.js は、サーバー側アプリケーション用のオープンソースのクロスプラットフォーム環境です。 Node.js を使用すると、高パフォーマンスの Web アプリケーションを構築できます。 Web アプリケーションでは、多くの場合、異なる HTTP リクエスト間でデータを共有する必要があります。この目的を達成するには、Session を使用します。
セッションは、ユーザーが Web アプリケーションにアクセスするときにさまざまな情報を保存するために使用される Web アプリケーションのテクノロジです。セッションの原理は、サーバー側にデータを保存することであり、クライアントがサーバーにリクエストするたびに、クライアントのリクエストにセッションIDが含まれているかどうかがチェックされ、含まれている場合は、対応するセッションデータがサーバーから取り出されます。アプリケーションで使用するため。 Node.js は、Web アプリケーションでセッションを使用する方法も提供します: express-session
。
express-session
は、Session を使用して異なる HTTP リクエスト間でデータを共有するミドルウェアです。このミドルウェアを使用する前に、インストールする必要があります。 npm コマンドを使用してインストールできます。
npm install express-session
インストールが成功したら、express-session
を Node.js アプリケーションに導入します。
const session = require('express-session');
次に、次のように設定する必要があります。セッションにいくつかのパラメータを追加します。 express-session
は、セッションの作成時に設定できるパラメーターをいくつか提供します。
このうち、secret
は必須パラメータであり、セッション ID の暗号化に使用されます。 resave
このパラメータは、セッションが変更されていない場合にセッション データを再保存するかどうかを示します。 saveUninitialized
セッションが初期化されていないときにセッション データを保存するかどうかを示します。 cookie
パラメータは、セッションの一部の Cookie オプションを設定するために使用されます。
app.use(session({ secret: 'mysecret', resave: false, saveUninitialized: false, cookie: { maxAge: 3600000, secure: false, httpOnly: true } }));
上記のコードを追加すると、Session を使用できるようになります。 Node.js では、セッションに保存されているデータには req オブジェクトを通じてアクセスできます。 Session に保存されるデータは、任意のタイプの JavaScript オブジェクトにすることができます。
app.get('/setSession', function(req, res) { req.session.username = 'Alice'; req.session.email = 'alice@example.com'; res.send('Session data is set'); }); app.get('/getSession', function(req, res) { const username = req.session.username; const email = req.session.email; res.send(`Session data is: username: ${username} email: ${email}`); });
上記のコードでは、最初のルート ハンドラーはユーザー名と電子メール アドレスをセッションに保存します。 2 番目のルート ハンドラーは、セッションからユーザー名と電子メール アドレスを取得し、それらを応答としてクライアントに送り返そうとします。
ブラウザで http://localhost:8080/setSession
にアクセスすると、サーバー側で新しいセッションが作成され、ユーザー名とメールアドレスが保存されます。セッション。次に、http://localhost:8080/getSession
にアクセスすると、保存されているデータがセッションから取得され、応答としてブラウザに返されます。これにより、異なるHTTPリクエスト間でデータを共有する機能が実現されます。
セッションを使用する場合は、いくつかのセキュリティ上の問題に注意する必要があります。 Session を使用する場合は、クロスサイト スクリプティング攻撃 (XSS 攻撃) やセッション ハイジャックを回避するように注意する必要があります。いくつかのセキュリティ対策は次のとおりです。
つまり、Session を使用すると、異なる HTTP リクエスト間でデータを共有する機能を実現できる、Web アプリケーションを作成する際に非常に便利な技術です。 Node.js では、express-session
ミドルウェアを使用してセッション操作を実装できます。 Session を使用する場合は、ユーザー データのセキュリティの保護に注意する必要があります。
以上がNodejs はセッション ID を設定しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。