session["session_id"]
が与えられていると、そのセッションが属しているUser
にログインできますか?どのようにすれば、そのセッションIDでdeviseユーザーを見つけることができますか?
答えて
は、少なくとも私のシステム上で(レール3.2、2.0.4を工夫)、あなたはこのようにそれを行うことができます。
session
次のとおりです。
{"session_id"=>"be02f27d504672bab3408a0ccf5c1db5", "_csrf_token"=>"DKaCNX3/DMloaCHbVSNq33NJjYIg51X0z/p2T1VRzfY=", "warden.user.user.key"=>["User", [3], "$2a$10$5HFWNuz5p6fT3Z4ZvJfQq."]}
session["warden.user.user.key"][1][0]
、その後、3
があります。私はあなたが達成しようとしているが、現在のセッションからのみのユーザーをしたい場合は
にお答えしようとするかわからないんだけど
User.find(session["warden.user.user.key"][1][0])
Rails 4.2.1でDevise 3.4.1をUser.find(セッション["warden.user.user.key"] [0] [0])にしたいと思っています –
ありがとう。この例は醜いですが、うまくいきます。再度、感謝します。このクッキーの例:http://stackoverflow.com/a/43549108/5754223 – artamonovdev
:として
だから、私はそれを見つけるだろう、簡単な方法は、例えば、セッションで彼のIDを保存するために、次のようになります。
def login(username, pass)
# do the usual authentication stuff and get user
if logedin
session[:user_id] = user.id
end
end
次に、現在のユーザが
ようなものになるだろうを取得しますcurrent_user =User.find(session[:user_id])
、現在ログインしているすべてのユーザーを見つけることです何をしたい、私はあなたが事前に定義されているため、DBでセッションを保存するためにアプリを設定への必要があると考えられる場合は、そのセッションデータは、ブラウザでCookieに格納されています。これに関する詳細については、この答えをチェックし How to track online users in Rails?
EDIT:はちょうどあなたが最初の方法はあなたのためにそこに実際にあるように工夫されている使用して気づきました。任意のコントローラーでcurrent_user
メソッドに呼び出すだけで済みます。 2番目の方法ではこの回答を確認してください"Who's Online" using Devise in Rails
- 1. InstagramのユーザーIDとフィードをどのように見つけることができますか?
- 2. IDでユーザーを見つけることができません
- 3. いつ、どのように異なるデータベースタイプを使用すればよいですか(そして、どこで見つけることができますか)?
- 4. にはどうすれば見つけることができますか?
- 5. アプリケーションは、それがイズムどの日見つけると、ユーザーがこれまで
- 6. 他のユーザーがいるディレクトリをbashでどのように見つけることができますか?
- 7. どのようにmongoosejsで見つけることができますか?
- 8. このYouTubeチャンネルのユーザーID /電子メールを見つけるにはどうすればいいですか
- 9. TeamCityでどのようにユーザーのリストを見つけることができますか?
- 10. どのようにC#からActive Directoryのユーザーを見つけることができますか?
- 11. AX2009の最後のラベルIDはどのようにして見つけることができますか?
- 12. どのように 'オブジェクト'と 'メソッド'のそれぞれの値を見つけることができますか、それらはコンストラクタSystem.MulticastDelegateの引数ですか?
- 13. カーソルがあることをWordでどのように見つけることができますか
- 14. ActiveRecord :: RecordNotFound - IDなしでユーザーを見つけることができません
- 15. スマートシートで行IDまたは列IDを見つけるにはどうすればよいですか?
- 16. すべてのソースでdevise-3.5.0を見つけることができませんでした。レール4、devise gem
- 17. .ipa、ここで私はそれを見つけることができます
- 18. どうすればjiraのidをgitのコミットIDに関連付けることができますか?
- 19. メールがDBに入っていても、Deviseはメールでユーザーを見つけることができません。
- 20. どこでMicrosoft.Build.Utilities.v3.5を見つけることができます
- 21. どのようにマクロブラウザでマクロを非表示にするには、管理者だけがそれを見つけることができますか?
- 22. これらのアドレスはどのようにして見つけることができますか?
- 23. Acrobat「checkedOut」フラグ。それは何ですか、どこで見つけることができますか
- 24. 、セッションが存在することをIDで確認するにはどうすればよいですか?
- 25. php find関数でこの "td"をどのように見つけることができますか?
- 26. mysqlワークベンチでどのようにこのクエリを見つけることができますか
- 27. 4つのテーブルでどのように値を見つけることができますか?
- 28. Devise Invitable - ジェネレータ 'devise_invitable:install'を見つけることができませんでした
- 29. レールでセッションIDを見つける3
- 30. Salesforce Bulk API:Google App Engineで実行するとInvalidSessionId(セッションIDを見つけることができません)
代わりにUser.current_userを使用できます。試しましたか? –