# Pagina dopo il login

**URL:** <https://www.ruby-forum.com/t/pagina-dopo-il-login/174701>\
**Category:** IT\
**Created:** [August 31, 2009, 5:48pm UTC](https://www.ruby-forum.com/t/pagina-dopo-il-login/174701 "2009-08-31T17:48:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![spitfire](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@spitfire](https://www.ruby-forum.com/u/spitfire)\
**Post date:** [August 31, 2009, 5:48pm UTC](https://www.ruby-forum.com/t/pagina-dopo-il-login/174701/1 "2009-08-31T17:48:00Z")

</div>

Ciao a tutti,

da qualche giorno mi chiedo quale sia il modo migliore per risolvere il  
problema della “pagina dopo il login”. Mi spiego meglio.

Nell’applicazione su cui sto lavorando diverse pagine richiegono  
l’autenticazione, quindi se l’utente prova ad accedere direttamente a  
tali pagine, verra’ rediretto alla pagina di login.  
Fin qui e’ facile.

Dopo aver fatto l’autenticazione, l’utente dovrebbe essere rediretto  
alla pagina in cui voleva andare.

Ecco un esempio:

1. l’utente vuole visualizzare gli Articoli, e clicca sul link articoli
2. la pagina articoli e’ permessa solo agli utenti registrati, quindi  
l’utente viene rediretto alla pagina Login
3. dopo la corretta operazione di login, l’utente verra rediretto alla  
pagina desiderata, cioe’ Articoli

Qual’e’ la soluzione piu’ elegante per risolvere questo dilemma ?

Grazie  
Alessandro

---

<div class="post-metadata">

**Author:** ![spitfire](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@spitfire](https://www.ruby-forum.com/u/spitfire)\
**Post date:** [August 31, 2009, 5:50pm UTC](https://www.ruby-forum.com/t/pagina-dopo-il-login/174701/2 "2009-08-31T17:50:07Z")

</div>

Ale Ds wrote:

> Ciao a tutti,
> 
> da qualche giorno mi chiedo quale sia il modo migliore per risolvere il  
> problema della “pagina dopo il login”. Mi spiego meglio.
> 
> Nell’applicazione su cui sto lavorando diverse pagine richiegono  
> l’autenticazione, quindi se l’utente prova ad accedere direttamente a  
> tali pagine, verra’ rediretto alla pagina di login.  
> Fin qui e’ facile.
> 
> Dopo aver fatto l’autenticazione, l’utente dovrebbe essere rediretto  
> alla pagina in cui voleva andare.
> 
> Ecco un esempio:
> 
> 1. l’utente vuole visualizzare gli Articoli, e clicca sul link articoli
> 2. la pagina articoli e’ permessa solo agli utenti registrati, quindi  
> l’utente viene rediretto alla pagina Login
> 3. dopo la corretta operazione di login, l’utente verra rediretto alla  
> pagina desiderata, cioe’ Articoli
> 
> Qual’e’ la soluzione piu’ elegante per risolvere questo dilemma ?
> 
> Grazie  
> Alessandro

solitamente si salva in una variabile di sessione la pagina richiesta  
prima del filtro, a login effettuato usi poi redirect\_to per mandare  
l’utente dove aveva chiesto

---

<div class="post-metadata">

**Author:** ![spitfire](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@spitfire](https://www.ruby-forum.com/u/spitfire)\
**Post date:** [September 1, 2009, 10:59am UTC](https://www.ruby-forum.com/t/pagina-dopo-il-login/174701/3 "2009-09-01T10:59:46Z")

</div>

Alessandro S. wrote:

> solitamente si salva in una variabile di sessione la pagina richiesta  
> prima del filtro, a login effettuato usi poi redirect\_to per mandare  
> l’utente dove aveva chiesto

In effetti questo Ã¨ il meccanismo usato da AuthenticatedSystem, classe  
che accompagna i piÃ¹ comuni framework di autenticazione per Rails (ad  
esempio restful\_authentication)

Il codice da mettere nel controller Ã¨

# a inizio procedura di login

store\_location

# poi fai i tuoi controlli

# a login completata

redirect\_back\_or\_default(:controller =\> ‘/people’, :action =\> ‘index’)

e la definizione dei metodi Ã¨:

def store\_location  
session[:return\_to] = request.request\_uri  
end

def redirect\_back\_or\_default(default)  
session[:return\_to] ? redirect\_to(session[:return\_to]) :  
redirect\_to(default)  
session[:return\_to] = nil  
end

In ogni caso conviene usare un framework (gemma, plugin o lib) piuttosto  
che scriversi il proprio gestore di login.

Paolo

---

<div class="post-metadata">

**Author:** ![spitfire](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/a5b964/32.png) [@spitfire](https://www.ruby-forum.com/u/spitfire)\
**Post date:** [September 1, 2009, 6:07pm UTC](https://www.ruby-forum.com/t/pagina-dopo-il-login/174701/4 "2009-09-01T18:07:55Z")

</div>

Paolo M. wrote:

> Alessandro S. wrote:
> 
> > solitamente si salva in una variabile di sessione la pagina richiesta  
> > prima del filtro, a login effettuato usi poi redirect\_to per mandare  
> > l’utente dove aveva chiesto
> 
> In effetti questo Ã¨ il meccanismo usato da AuthenticatedSystem, classe  
> che accompagna i piÃ¹ comuni framework di autenticazione per Rails (ad  
> esempio restful\_authentication)
> 
> Il codice da mettere nel controller Ã¨
> 
> # a inizio procedura di login
> 
> store\_location
> 
> # poi fai i tuoi controlli
> 
> # a login completata
> 
> redirect\_back\_or\_default(:controller =\> ‘/people’, :action =\> ‘index’)
> 
> e la definizione dei metodi Ã¨:
> 
> def store\_location  
> session[:return\_to] = request.request\_uri  
> end
> 
> def redirect\_back\_or\_default(default)  
> session[:return\_to] ? redirect\_to(session[:return\_to]) :  
> redirect\_to(default)  
> session[:return\_to] = nil  
> end
> 
> In ogni caso conviene usare un framework (gemma, plugin o lib) piuttosto  
> che scriversi il proprio gestore di login.
> 
> Paolo

Come gestore login gia’ uso Authlogic,  
per stabilire la pagina dopo il login aggiungero’ una voce “return\_to”  
nell’hash session, come mi avette consigliato.

grazie 1000,  
Alessandro
