2012-08-22 14 views
8

In AngularJS, ho un controller di accesso che viene reindirizzato da ogni singola pagina nell'app se l'utente arriva alla pagina e non è loggato. Dopo la sequenza di login, vorrei reindirizzare l'utente di nuovo alla pagina da cui sono venuti. Qual'è il miglior modo per farlo? Salva la vecchia posizione nel $rootScope? Reindirizza a '/login?returnto=' + $location.path()? Esiste una funzione integrata?Reindirizzamento al referente

risposta

5

È possibile utilizzare $rootScope o definire un servizio per salvare la posizione precedente. Ecco uno SO post che contrasta i due approcci. Personalmente non mi piace aggiungere returnto= all'URL.

Questo post del blog, Authentication in AngularJS, potrebbe essere di vostro interesse. Si noti il ​​commento che Vojta (uno degli autori di AngularJS) ha fatto su quel post del blog sull'utilizzo di $rootScope - egli raccomanda invece un servizio.

+1

E se la pagina di accesso non è una pagina gestita da angolare – JustGoscha

+1

@JustGoscha, utilizzare un cookie o un oggetto di sessione lato server per memorizzare la pagina originale. Dopo aver effettuato correttamente il login, verificare l'esistenza del cookie o estrarre la pagina dalla sessione e inviarla al browser (ad esempio, come qualche elemento JavaScript o modulo nascosto). –

Problemi correlati