Nella mia app Rails, ho una pagina di accesso. Dopo che quella persona ha effettuato l'accesso, qual è il modo migliore in cui la mia app può continuare a monitorare la persona che ha effettuato il login. Ad esempio, se l'utente si sposta su pagine diverse, i miei controller/azioni perderanno la traccia di quell'utente a meno che non continui a passare variabile tra ogni pagina che l'utente successivamente visita. C'è un modo migliore per farlo? Dovrei usare la variabile sessions
?Rails: tracciamento di un ID utente
5
A
risposta
7
Sì, le sessioni sono esattamente ciò che state cercando.
session["user_id"] = user_id
E per andare a prendere l'utente corrente in un'altra pagina (se il modello si chiama User):
@current_user = User.find(session["user_id]")
4
prendere in seria considerazione un plugin per gestire questo.
Ci sono diversi, come ad esempio restful authentication.
Fornisce la funzionalità current_user
e logged_in?
.
2
Tenete presente che se si sta utilizzando le sessioni basate sui cookie, che è di default Penso che in rails 2.1+ che questi dati possono essere modificati per cambiare chi ha effettuato il login. – Tilendor
In realtà il cookie ha un'impronta digitale SHA512 basata su di te La chiave segreta dell'applicazione non garantisce la manomissione dei dati. Ciò significa tuttavia che il contenuto dei cookie è disponibile sul lato client, quindi è necessario evitare di memorizzare dati sensibili (password ecc.) A meno che non si passi a un archivio lato server. – Palm