Jak zalogować się do user_name w Railsach?
Używam Devise w Railsach 3. Chcę zobaczyć nazwę current_user w production.log.
Chciałbym ustawić szyny w ten sposób:
config.log_tags = [:user_name]
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
12 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Warden przechowuje informacje o użytkowniku w sesji, ale sesja req.session nie jest dostępna do rejestracji.
Musisz więc dodać to do config/application.rb
Następnie utwórz plik config/initializers/logging.rb
Teraz widzę to dla anonimowego:
[Anonym] Served asset ...
a to jest dla użytkownika:
[user_id:1] Served asset ...
Anonimowy użytkownik
Potwierdzenie od:
https://gist.github.com/WojtekKruszewski
https://gist.github.com/WojtekKruszewski
Poprawiłem trochę mój projekt, aby zawierał tylko identyfikator, ale w zasadzie to samo.
I utwórz ten inicjator
Anonimowy użytkownik
Potwierdzenie od:
Dodane 07.03.2013:
>
W Railsach 4, encrypted_cookie_store jest domyślnym magazynem sesji. Oto jak możesz uzyskać dostęp do danych sesji:
session_data = req.cookie_jar.signed[ "_qnaire_session" ]
I wygląda na to, że warden_data wygląda inaczej w mojej nowej aplikacji, na przykład: , gdzie pierwszym elementem jest identyfikator użytkownika.
Oto mój aktualny fragment:
https://gist.github.com/wojt-eu/5109643
https://gist.github.com/wojt-eu/5109643
Poprzednia wersja:
>
Oto co wymyśliłem:
can be replaced with
instance.config.session_options[:key]
or via singleton:Rails.application.config.session_options[:key]
Mam model ProviderUser, stąd . Przypuszczam, że w przypadku modelu niestandardowego byłby to .Jest brudny, ale nie wpływa na normalny proces uwierzytelniania, kolejność stosu oprogramowania pośredniego itp. Jeśli zepsuje się podczas jakiejś aktualizacji, wpłynie to tylko na dzienniki tagów, co powinienem szybko zauważyć, przeglądając dzienniki programowania.
Anonimowy użytkownik
Potwierdzenie od:
To jest dla Authlogic. To, co musisz zrobić, może się różnić, więc powinieneś naprawdę zagłębić się i zobaczyć, jakie dane już Ci zapewniają.
Krok 1:
Zobacz, co jest dostępne dla obiektu . Dodaj do tego:
Następnie kliknij stronę i zobacz, co zostanie zresetowane.
Krok 2: Sprawdź, czy w Twoim słoiku z ciasteczkami jest wystarczająco dużo informacji, używając tej samej techniki:
(kliknij na życzenie)
Nie martw się również wpisywaniem nazw użytkowników/e-maili w dziennikach - identyfikator użytkownika jest wystarczająco dobry i możesz go wyszukać w bazie danych, aby uzyskać dodatkowe potrzebne metadane.
Anonimowy użytkownik
Potwierdzenie od:
Myślę, że najlepszą alternatywą jest przechowywanie nazwy użytkownika w pliku cookie bezpośrednio w log_in i niszczenie go wraz z sesją.
NIE DZIAŁA:
Ale jeśli używasz devise, używa on oprogramowania pośredniego warden raack, więc
env ['warden']
powinno być dostępne, więc czego możesz spróbować?Nawet bez naczelnika, ponieważ masz sesję dostępną przez
env ['rack.session']
, jeśli przechowujesz identyfikator użytkownika w sesji, możesz zrobić coś takiegoAnonimowy użytkownik
Potwierdzenie od:
https://github.com/roidrage/lo ... 09861
https://github.com/roidrage/lo ... 09861
Właśnie tego spróbowałem z Rails 4, najnowszym wynalazkiem i Lograge.
Anonimowy użytkownik
Potwierdzenie od:
http://benjit.com/rails/logger ... gfile
http://benjit.com/rails/logger ... file/
/
Zakłada się, że obiekt odpowiada na . Jednak w moim przypadku tak się nie stało. To, co ostatecznie zadziałało dla mnie, to:
:
Anonimowy użytkownik
Potwierdzenie od:
Twoja odpowiedź
https://stackoverflow.com/a/10813097/316700
w momencie inicjalizacji nie mamy odpowiedniego obiektu , ale w żądaniu znajduje się .
Jeśli używasz _database session_store_, tak jak w moim przypadku, możesz przebudować
sesja
ad-hoc:
session = ActiveRecord::SessionStore::Session.find_by_session_id(request.cookie_jar["_session_id"])
Oto jak zdefiniowane są moje :
Wynik jest taki:
Anonimowy użytkownik
Potwierdzenie od:
decyzja
https://stackoverflow.com/a/28117273/518204
Swards i działa jak zaklęcie. Jednak użycie zamiast Hash # has_key? Czy zabija wydajność
Wyniki mówią same za siebie
Anonimowy użytkownik
Potwierdzenie od:
session [: user_id]
z surowego pliku cookieenvironments/production.rb:
app/models/cookie_decrypter.rb:
Anonimowy użytkownik
Potwierdzenie od:
Ten błąd 500 ServerError został przesłany przez: # {nazwa użytkownika}
Anonimowy użytkownik
Potwierdzenie od:
testowany na szynach 4.