Biorąc pod uwagę session["session_id"]
czy jest możliwe znalezienie zalogowanego użytkownika User
, do którego należy ta sesja?Jak znaleźć użytkownika programistycznego według jego identyfikatora sesji?
Odpowiedz
Przynajmniej w moim systemie (szyny 3.2, opracowanie 2.0.4), można zrobić to tak:
session
jest:
{"session_id"=>"be02f27d504672bab3408a0ccf5c1db5", "_csrf_token"=>"DKaCNX3/DMloaCHbVSNq33NJjYIg51X0z/p2T1VRzfY=", "warden.user.user.key"=>["User", [3], "$2a$10$5HFWNuz5p6fT3Z4ZvJfQq."]}
session["warden.user.user.key"][1][0]
, to jest 3
.
Więc ja go znaleźć jako:
User.find(session["warden.user.user.key"][1][0])
W Rails 4.2.1, Devise 3.4.1 będziesz chciał użyć User.find (sesja ["warden.user.user.key"] [0] [0]) –
Dzięki. Ten przykład jest brzydki, ale działa. Dzięki jeszcze raz. Ten przykład plików cookie: http://stackoverflow.com/a/43549108/5754223 – artamonovdev
Nie jestem pewien, co chce osiągnąć, ale postaram się odpowiedzieć
Jeśli chcesz tylko użytkowników z bieżącej sesji , prostym sposobem byłoby, aby zapisać swój identyfikator na sesji, na przykład:
def login(username, pass)
# do the usual authentication stuff and get user
if logedin
session[:user_id] = user.id
end
end
następnie uzyskać bieżący użytkownik będzie coś
current_user =User.find(session[:user_id])
Jeśli to, co chcesz, jest znalezienie wszystkich użytkowników, które są aktualnie zalogowany, myślę, że trzeba config swoją aplikację, aby zapisać sesję w DB, bo predefiniowane jest, że dane sesji jest przechowywać w plikach cookie w przeglądarce . Aby uzyskać więcej informacji na ten temat można sprawdzić tę odpowiedź How to track online users in Rails?
EDIT: Właśnie zauważyliśmy używasz opracować więc pierwszy sposób jest rzeczywiście dla ciebie. Trzeba tylko wywołać metodę current_user
na dowolnym kontrolerze. Po drugie, sprawdź tę odpowiedź. "Who's Online" using Devise in Rails
- 1. Jak znaleźć obiekt pamięci podręcznej według identyfikatora
- 2. JavaScript nie może znaleźć elementu według identyfikatora?
- 3. Jak uzyskać model z kolekcji Backbone.js według jego identyfikatora?
- 4. Kończenie identyfikatora sesji na serwerze
- 5. Jak znaleźć element w Watinie według jego nazwy?
- 6. Telegram bot: Jak wspomnieć o użytkowniku za pomocą jego identyfikatora (nie jego nazwy użytkownika)
- 7. Hibernacja: pobierz obiekt według identyfikatora
- 8. Najlepsza praktyka w utrzymywaniu identyfikatora użytkownika (MVC)
- 9. Jak automatycznie znaleźć lokalizację użytkownika?
- 10. Laravel 5.2 - Jak wylogować użytkownika ze wszystkich jego urządzeń
- 11. Pobierz instancję według identyfikatora wystąpienia
- 12. Dodaj kolumnę identyfikatora według grupy
- 13. Pobierz obraz profilu użytkownika według Id
- 14. Czy możliwe jest pobranie profilu użytkownika przy użyciu jego identyfikatora użytkownika członkostwa?
- 15. Authlogic uzyskujący identyfikator użytkownika w obiekcie sesji
- 16. Jak znaleźć znacznik czasu rozpoczęcia sesji php
- 17. Pobieranie wartości identyfikatora sesji z żądania JSF
- 18. XPath: Jak wybrać węzeł według jego atrybutu?
- 19. Jak wstrzyknąć obiekt sesji/użytkownika po bootowaniu?
- 20. Jak uzyskać główny identyfikator wątku procesu (znany z jego identyfikatora)?
- 21. MongoDB: jak znaleźć na podstawie identyfikatora poddokumentu?
- 22. Czytanie identyfikatora sesji przy użyciu kodu JavaScript
- 23. Jak uzyskać nazwę użytkownika i opis z jego identyfikatora w strukturze SDL Tridion Anguilla
- 24. Kakao: wykrywanie urządzeń USB według identyfikatora dostawcy
- 25. codeigniter ion auth uzyskanie identyfikatora użytkownika
- 26. Jak rozpoznać użytkownika w sesji w PHP
- 27. jQuery: Jak znaleźć obraz przez jego src
- 28. Jak znaleźć plik po jego częściowej nazwie?
- 29. Znaleźć wszystkie wykorzystanie stanu sesji
- 30. Jak wykryć użytkownika ręki trzymającego jego urządzenie?
Możesz użyć User.current_user zamiast ... próbowałeś? –