2012-08-22 9 views
8

En AngularJS, tengo un controlador de inicio de sesión que se redirige a cada página de la aplicación si el usuario llega a la página y no está conectado. Después de la secuencia de inicio de sesión, me gustaría redirigir al usuario volver a la página de donde vinieron. ¿Cuál es la mejor manera de hacer esto? Guarde la ubicación anterior en el $rootScope? Redirigir a '/login?returnto=' + $location.path()? ¿Hay una función incorporada?Redirigiendo al referer

Respuesta

5

Puede usar $rootScope o definir un servicio para guardar la ubicación anterior. Aquí hay un SO post que contrasta los dos enfoques. Personalmente, no me gusta agregar returnto= a la URL.

Esta publicación de blog, Authentication in AngularJS, puede ser de su interés. Tenga en cuenta el comentario que Vojta (uno de los autores de AngularJS) hizo en esa publicación de blog sobre el uso de $rootScope - recomienda un servicio en su lugar.

+1

¿Qué pasa si la página de inicio de sesión no es una página manejada por angular – JustGoscha

+1

@JustGoscha, use una cookie o un objeto de sesión del lado del servidor para almacenar la página original. Después de un inicio de sesión exitoso, verifique la existencia de la cookie o extraiga la página de la sesión y envíela al navegador (por ejemplo, como elemento de JavaScript o formulario oculto). –

Cuestiones relacionadas