Me pregunto por qué parece ser popular que la página de inicio de sesión de un SPA sea una página separada que no es una página del SPA (como en carga y envío de datos a través de solicitudes ajax).
Lo único que se me ocurre es la seguridad, pero no puedo pensar en un motivo de seguridad específico. Quiero decir que lo único que viene a la mente es que si su página de inicio de sesión en parte del SPA, envía el nombre de usuario / contraseña a través de ajax, que pueden ver herramientas como Firebug o el inspector web, incluso si lo envía de forma normal. Solicitud POST, hay otras herramientas que pueden capturar fácilmente estos datos (como fiddler, httpscoop, etc.).
¿Hay algo que este olvidando?
javascript
architecture
ryanzec
fuente
fuente
Respuestas:
Presumiblemente es para ahorrar cargar un montón de activos del lado del cliente (como marcos de JavaScript pesados, imágenes, etc. ) que solo son requeridos por la aplicación.
Existen medios más sofisticados para lograr un objetivo de rendimiento similar (consulte " Malte Ubl y John Hjelmstad: un enfoque novedoso y eficiente para la carga de JavaScript: JSConf EU 2012 "), pero esto es bastante rápido de implementar y posiblemente igual de eficiente, especialmente si su aplicación web usa casi todos sus activos de todos modos.
Puede ver esto en la naturaleza en un sitio como http://infogr.am beta:
fuente
Creo que hay algunos argumentos razonables a favor o en contra, y diría que la tecnología también juega un papel en la decisión.
Se podría argumentar que tener una "página" de inicio de sesión separada permite el uso de "Seguridad de directorio". Generalmente, cualquiera puede ver la "página" de inicio de sesión, pero solo los usuarios autenticados pueden ver la "página" de la aplicación y su "directorio". Las rutas también se pueden bloquear, donde / Account / es diferente de / App / y cada una tiene su propio "perfil" de seguridad.
Además, si utiliza un enfoque SPA y combina la autenticación con la experiencia de la aplicación, la lógica podría complicarse. En lugar de suponer que el usuario está "conectado porque está aquí", debe verificar constantemente su estado de autenticación y preguntar "si este usuario está aquí".
Además, la página de inicio de sesión generalmente se encuentra en el sitio orientado al consumidor. Vaya a www.yourapp.com y tiene información acerca de información, contacto, soporte, etc. y una página de "inicio de sesión". autenticación, puede redirigir a una gran cantidad de objetivos ..
La razón por la que mantengo una página de inicio de sesión separada y la razón por la que realmente tengo una aplicación completamente diferente para mi sitio "orientado al consumidor" es porque puedo exponer muy poco a los no autenticados. Por casualidad, algún idiota comienza a golpear mi página de inicio de sesión, no quiero que eso afecte el lado de la aplicación de las cosas ... incluso si el inicio de sesión solo está haciendo una simple búsqueda de autenticación ... me ayuda a evitar que los bozo afecten mi experiencia de los usuarios ... En el peor de los casos, mi sitio de consumidor deja de funcionar y nadie puede iniciar sesión, pero al menos los usuarios registrados no lo sabrán y su experiencia no comenzará a disminuir ... No estoy diciendo que esa sea la opción a prueba de balas ... pero al menos He aislado el riesgo para el área no autenticada.
fuente
Una razón para hacerlo es porque puede usar sesiones normales basadas en cookies. El usuario inicia sesión, la respuesta envía una cookie junto con la página principal inicial ... y luego todas las llamadas ajax posteriores envían la cookie al servidor.
fuente
Veo algunas razones para hacer esto:
fuente