0

Express ミドルウェアを備えた node.js Web サーバーがあります。パフォーマンス上の理由から、セッション ストアの必要性を排除しようとしています。私は今のところあまり追跡していません。

ただし、ログイン後にセッションが開始されたときに、ユーザー名とユーザー ID を追跡する必要があります。Cookie が有効な場合に機能する express res.cookie( ... ) を使用してこれを実装しました。ただし、Cookie が無効になっていると機能しません。

だから私は req.session を見ていましたが、それは内部で cookieSession を使用しています。

Q1: ブラウザで Cookie を無効にし、NO-SESSION-STORE (REDIS/MONGO など) を使用して、複数のリクエスト間で (ユーザーがログインしたら) ユーザー名を追跡するにはどうすればよいですか?

Q2: 上記の Q1 のソリューションで、Web サーバーをステートレスにしたいので、どの時点でもメモリが大きくなりませんか?

出来ますか?私の質問/要件は理にかなっていますか? 私はこれが初めてです。

基本的に、リクエストが送受信されるたびに通信されるリクエストの一部になることができるCookie以外のオブジェクトを探しています

助けてください

4

1 に答える 1

0

リクエスターとバックエンド サービスを制御しているように見えるため、複数の方法が考えられます。

  • HTTP ヘッダー
  • クエリ文字列
  • クッキー

私たちはクッキーがアウトであることを知っています。

HTTP ヘッダーを使用すると、何らかの AJAX 呼び出しを行う場合を除き、常に期待できるとは限りません。

クエリ文字列では、常にユーザー名またはその他の識別子を手動で送り返す必要があります。ただし、Q1とQ2は解決します。

アプリの内容によっては、エンドポイントを ReSTful にしてアクションの定義に役立つように再構築することが理にかなっている場合があります。これにより、リクエスト URL の一部としてユーザー名を使用する意味が理解できるようになります。

例えば:

GET http://example.com/:username => could display a profile
GET http://example.com/:username/friends => could display a list of friends.

アプリの設計方法によっては、WebSocket を利用してユーザー接続と認証を処理できる場合もあります。

于 2013-07-30T19:13:08.993 に答える