2016-11-28 9 views
0

私は最近、nodejs expressを使用してWebアプリでprevelageエスカレーションのようなセッション関連の問題をテストしました。私の初めてのnodejsアプリのテストは、このような状況です。サイトには3人のユーザーロールがあります。管理者、マネージャー、ユーザー、3人ともconnect.sidと同じ値を持ち、3人ともアプリケーション上で異なるprivelagesを持っています皆のために正式な承認を得てnodejsセッション管理について混乱しました

nodejsがどのようにセッションを処理しているのか、そしてこれが管理者であることをどのように区別しているのか、彼はマネージャであり、そのようなものですか?

nodejsウェブプログラミングの経験がある人は、これにいくつかの光を当てることができますか?

+0

同じブラウザから3種類のユーザーとしてログインしていますか? – robertklep

+0

私は1にログアウトし、他のユーザーにログアウトしてログインしたクッキーをチェックしました。同じクッキー値が表示されます – StackB00m

+0

どのようにユーザーをログアウトしていますか?セッションCookieが削除/削除されるか、セッション_data_だけが取得されますか? – robertklep

答えて

0

あなたが好き、あなたのセッションに変数を割り当てることができます。

request.session.level = 'admin'; 
+0

いいえ私は今どのように割り当てるのか尋ねている、私の疑問は同じconnect.sid値であるnodejsはそれらの間でセッションを管理している – StackB00m

0

はクッキーがログアウトし、他にログインして、私はクッキーの値はちょうどセッションを追跡するために使用される

同じCookie値を参照してくださいにチェック。興味深い情報はすべてサーバー上に保持されます。

サイトに到着すると、セッションとセッションクッキーが表示され、ブラウザに接続します。この時点ではログインしていませんが、まだセッションCookieが取得されています。 (少なくとも典型的には、セッション実装の特定の詳細を共有していないので、これについてはわかりません)。

ログインしているユーザの詳細は、サーバ側に保存され、そのセッションIDに関連付けられています。

もう一度ログアウトしてログインすると、同じセッションを使用しています。サーバー上のそのセッションIDに対して保存されているデータが変更されただけです。

関連する問題