¿Cómo puedo manejar la autenticación de usuarios y las sesiones en mi aplicación?

0

Actualmente estoy creando un módulo de autenticación y tengo una pregunta. He configurado un servidor con una API y quiero que mis usuarios se autentiquen en este servidor, pero uso AngularJS para el sitio. Todo con AngularJS es del lado del cliente, por lo que me preguntaba cómo configurar la ID de usuario sin que nadie pueda cambiarlo y pretender que es otra persona.

La forma en que estoy pensando hacer esto es que cuando un usuario inicia sesión en mi aplicación, creo una cadena aleatoria en mi servidor y la modifico. Luego lo envío a la aplicación y lo guardo tanto en el almacenamiento local de la aplicación como en la base de datos de mi servidor, y tengo la aplicación incluida en todas las solicitudes. De esta manera, cuando alguien realiza una solicitud, puedo verificar que la cadena que envían es la que está en mi base de datos; cuando un usuario cierra la sesión, borro el almacenamiento local y elimino la cadena de mi base de datos. Creo una nueva cadena la próxima vez que inician sesión.

¿Es esta una buena idea? Tal vez esta sea la forma habitual de hacerlo, pero no pude encontrar ninguna solución de autenticación gratuita en Internet. Como esta aplicación probablemente tendrá mucho tráfico, no estoy dispuesto a pagar por cada conexión a mi servidor.

    
pregunta Sjoerd de Wit 11.07.2014 - 16:28
fuente

1 respuesta

1

El sistema que está describiendo se parece mucho a los sistemas estándar de autenticación / administración de sesión basados en cookies, en el que usted autentica al usuario y luego le proporciona un token de sesión que le permite identificar las solicitudes de ese usuario por la duración de su sesión.

Si bien podría implementar esto manualmente, lo recomendaría, ya que existen bastantes inconvenientes potenciales y cosas que debe saber para que la administración de la sesión sea correcta y sería fácil hacerlo mal y dejar su aplicación vulnerable a una sesión común. ataques de gestión.

no ha dicho lo que está usando para proporcionar la lógica del lado del servidor para su aplicación pero, por ejemplo, si está usando algo como Node.JS, entonces hay módulos de administración de sesión disponibles en npm (por ejemplo, Sesiones de cliente de Mozilla ).

En general, si busca 'administración de sesiones (su marco de trabajo del servidor)' Espero que encuentre una serie de módulos que implementan la funcionalidad necesaria

    
respondido por el Rоry McCune 13.03.2015 - 23:08
fuente

Lea otras preguntas en las etiquetas