ブラウザを再起動してもセッションが継続するように、クッキーを実装する最も簡単な方法は何ですか?最も簡単な方法は、ブラウザを再起動しても、セッションを継続することです。
4
A
答えて
5
でクッキーのマニュアルを参照してください。セッションのクッキーはブラウザの再起動の間に持続しないので、アプリケーションにユーザーが誰であるかを示す他の種類のクッキーを使用する必要があります。最も一般的には、私の機能を覚えておくことは、ユーザーがアプリケーションに覚えてほしいと選択させることによって実現されます。その場合、そのユーザーのパスワードとして機能するCookieを作成する必要があります。通常、次の操作を実行します。
- ユーザーがアクセスまたは表示できない属性を選択します。たとえば、自分のアカウントが作成されたとき、またはランダムに生成された文字列を格納するときなどです。
- この属性をハッシュして、Cookie値を認識できないようにします。ここで
例です。
identifier = current_user.id
value = Digest::SHA1.hexdigest(current_user.created_at)[6,10]
cookies['remember_me_id'] = {:value => identifier, :expires => 30.days.from_now}
cookies['remember_me_key'] = {:value => value, :expires => 30.days.from_now}
は最後に、ユーザーがログインしている場合は、チェックしているとき、あなたは彼らが同様に覚えてクッキーを使用してログインしているかどうかを確認する必要があります。例:
def current_user
current_user ||= login_from_session || login_from_cookie
end
def login_from_session
current_user = User.find(session[:id]) unless session[:id].nil?
end
def login_from_cookie
user = User.find(cookies['remember_me_id'])
if cookies['remember_me_key'] == Digest::SHA1.hexdigest(user.created_at)[6,10]
current_user = user
else
nil
end
end
これにより、ブラウザを再起動しなくてもCookieを実装できるようになります。
4
あなたのクッキーが永遠に続くようにしたい場合は、あなたが行うことができます:
cookies.permanent[:foo] = "bar"
は行うための最善のことは私に覚えているクッキーと呼ばれるものを使用することであるhttp://api.rubyonrails.org/classes/ActionDispatch/Cookies.html
1
http://railscasts.com/episodes/274-remember-me-reset-password?view=comments
Here'sくれライアンベイツによってクッキーを覚えているに大きなスクリーンキャスト!
関連する問題
- 1. Hibernateセッションを使用する最も簡単な方法
- 2. Grails:GORMでhashmapを永続化する最も簡単な方法
- 3. 最も簡単な方法
- 4. Javaでメモリリークを引き起こす最も簡単な方法は?
- 5. アイコン付きのアンドロイドでウェブページを起動する最も簡単な方法
- 6. 作成と最も簡単な方法
- 7. WPFで標準コントロールを継承する最も簡単な方法は?
- 8. ブラウザでGoogleのURLをスクレイプする最も簡単な方法は?
- 9. WindowsマシンからSSHセッションと対話する最も簡単な方法は?
- 10. 最も簡単な方法は、垂直
- 11. 最も簡単な一連のjavascript/jQueryイベントの最新のものを守る最も簡単な方法
- 12. Linux上でC++/Qtのスレッドを起動して忘れる最も簡単な方法は何ですか?
- 13. 双方向再帰関係を削除する最も簡単な方法は?
- 14. ASP.net 4.0でWebkitブラウザを検出する最も簡単な方法
- 15. C++でスレッドプールを作成する最も簡単な方法は?
- 16. Javaでデータベースメタデータを取得する最も簡単な方法は?
- 17. PHPで日付をインクリメントする最も簡単な方法は?
- 18. DesignModeでコレクションを編集する最も簡単な方法は?
- 19. 最も簡単な方法は、javaでhttpリクエストを行うことです
- 20. Windows Media Playerを一時停止/再生する最も簡単で簡単な方法は何ですか?
- 21. Pythonで簡単なGUIを開発する最も簡単な方法
- 22. 100種類のブラウザ接続をシミュレートする最も簡単な方法は何ですか?
- 23. インタラクティブなPythonコンソールをポップアップする最も簡単な方法は?
- 24. NSStringとintを連結する最も簡単な方法
- 25. .NETリモートサーバーオブジェクトに接続する最も簡単な方法は何ですか
- 26. 最も簡単な方法realloc
- 27. ファイルを検索する方法は、最も簡単で簡単ですか?
- 28. コードの起動時にWindows用のperlアプリケーションを起動する最も簡単な方法
- 29. ggplot2カラースケールの連続スケールを離散化する最も簡単な方法は?
- 30. ファイルをダウンロードする最も簡単な方法は?
レール認証フレームワーク(Deviseなど)の中には、この機能のサポートが組み込まれている点があります。これらを最初から構築するのではなく、真剣に検討する価値があります。 –