Para evitar que el usuario inicie sesión cada vez que caduque su sesión, quiero implementar un sistema de autenticación basado en token.
Mi esquema funciona así:
- Envíe el inicio de sesión del usuario (enviar nombre + contraseña) a través de
$.ajax()ahttpsURI - Cree un token a través de
$token = bin2hex(openssl_random_pseudo_bytes(16)); - Guardar
$token,useridy la fecha en una base de datos (solo accesible mediante SSL) - Haz eco de
$tokenyuseridal cliente - Guarde
$tokenyuseriden html localStorage en el cliente - Al hacer un
$.ajax()desde el cliente, siempre envíeuseridy$tokencomo POST - Serverside, haga coincidir el
$tokenproporcionado y vea si aún es válido (fecha no vencida). - Si está bien, continúe entregando el material solicitado
¿Puedes analizar mi esquema?
Muchas personas aconsejan no implementar procesos de autenticación personalizados, ya que a menudo son vulnerables a los ataques. Esto me hace sospechar que mi enfoque también puede tener fallas. ¿Puedes revelarme estos defectos?