Una aplicación web típica en su mayoría no tiene estado , debido a su naturaleza de solicitud / respuesta . El protocolo HTTP es el mejor ejemplo de un protocolo sin estado . Pero dado que la mayoría de las aplicaciones web necesitan estado , para mantener el estado , entre el servidor y el cliente, las cookies se utilizan de modo que el servidor pueda enviar cada respuesta al cliente. Esto significa que la próxima solicitud realizada por el cliente incluirá esta cookie y, por lo tanto, será reconocida por el servidor. De esta manera, el servidor puede mantener una sesión con el cliente sin estado , sabiendo principalmente todo sobre el estado de la aplicación , pero almacenado en el servidor. En este escenario en ningún momento el cliente mantieneestado , que no es cómo funciona Ember.js .
En Ember.js las cosas son diferentes. Ember.js facilita el trabajo del programador porque mantiene el estado para usted, en el cliente, sabiendo en todo momento sobre su estado sin tener que hacer una solicitud al servidor solicitando datos de estado .
Sin embargo, mantener el estado en el cliente a veces también puede introducir problemas de concurrencia que simplemente no están presentes en situaciones sin estado . Sin embargo, Ember.js también se ocupa de estos problemas para usted, específicamente ember-data se construye teniendo esto en cuenta. En conclusión, Ember.js es un marco diseñado para clientes con estado .
Ember.js no funciona como una aplicación web sin estado típica donde el servidor maneja la sesión , el estado y las cookies correspondientes casi por completo. Ember.js mantiene su estado completamente en javascript (en la memoria del cliente, y no en el DOM como otros frameworks) y no necesita el servidor para administrar la sesión. Esto hace que Ember.js sea más versátil en muchas situaciones, por ejemplo, cuando su aplicación está en modo fuera de línea.
Obviamente, por razones de seguridad, necesita algún tipo de token o clave única para ser enviada al servidor cada vez que se realiza una solicitud para autenticarse , de esta manera el servidor puede buscar el token de envío (que inicialmente fue emitido por el servidor) y verifique si es válido antes de enviar una respuesta al cliente.
En mi opinión, la razón principal por la que se usa un token de autenticación en lugar de cookies, como se indica en las Preguntas frecuentes de Ember Auth, se debe principalmente a la naturaleza del marco Ember.js y también porque se ajusta más al paradigma de la aplicación web con estado . Por lo tanto, el mecanismo de cookies no es el mejor enfoque al crear una aplicación Ember.js.
Espero que mi respuesta le dé más sentido a su pregunta.