1

私はPHPのバックグラウンドからRailsを始めたばかりで、このチュートリアルに従っています:http: //ruby.railstutorial.org/chapters/sign-in-sign-out#top

セクション8.2.1で-テーブルusersに追加する必要がremember_tokenあり、トークンの値がこのフィールドに配置されます。

私の質問は、ユーザーが別のコンピューターにサインインした場合はどうなるかということです。フィールドが更新されるためremember_token、Cookieのサインインは、ユーザーがサインインした以前のコンピューターでは無効になります。、、、を使用してCookieの新しいテーブルを作成することは意味がありませんか、それとも複雑 idすぎますか?remember_tokencreateduser_agent_ip_address

4

2 に答える 2

2

usersテーブルに格納されているremember_tokenがマスターキーであると想定します。
ブラウザはドアのようなものです。
マスターキーを使えば、好きなようにドアを開閉できます。ドアA、B、Cを開いたとします。ドアBとCを開いたまま、ドアAを閉じることを選択できます。それがremember_tokenがそこで機能する方法です。
さまざまなブラウザでsign_inし、一部のブラウザからサインアウトして、他のブラウザでログインしたままにすることを選択します。ブラウザでサインアウトすると、残りのブラウザが自動的にサインアウトするという意味ではありません。
ユーザーがセッションが現在アクティブになっている場所(サインイン)を確認し、それらのコンピューターからサインアウトできるようにする場合は、別のCookieテーブルが必要になることがあります。

于 2013-03-08T17:49:10.860 に答える
0

Railsはデータベースセッションを非常にうまく処理します。ガイドのこの章を読んでください、それはかなり明確です:)

http://guides.rubyonrails.org/action_controller_overview.html#session

于 2013-03-06T13:16:21.177 に答える