Rails Tutorialの8章で紹介されているsessionメソッドについて、どのようにセッション管理機能を実現しているのか分かりません。
session[:user_id] = user.id
といった形でキーとして:user_id
シンボルを指定しています。
私の理解ですと、"シンボル=文字列のようなもの"なので、固定値だと考えております。そして、インデックスに固定値を渡しているわけなので、一度に複数のユーザがログインした場合に前のユーザ分のsession内容が上書きされてしまう気がしております。
具体例)
1.ユーザ1が「ログイン」
2.サーバ側でsession[:user_id] = 1が記録される。
3.ユーザ2が「ログイン」
4.サーバ側でsession[:user_id] = 2が記録される。
5.ユーザ1がログイン後の「何かのページ」を見ようとする。
「何かのページ」を見るために送信されるリクエスト内のCookieとしてid=1のような情報が送信される(これは私の推測です。暗号化されててよく分かりません。)
6.サーバ側でsession[:user_id] == 1の照合が行われるが、session[:user_id]は2に上書きされているのでセッションが切れる。
といった挙動になりそうな気がして、混乱しています。
どなたかsessionの仕組みを、教えていただけないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/09/23 08:27