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()
ahttps
URI - Cree un token a través de
$token = bin2hex(openssl_random_pseudo_bytes(16));
- Guardar
$token
,userid
y la fecha en una base de datos (solo accesible mediante SSL) - Haz eco de
$token
yuserid
al cliente - Guarde
$token
yuserid
en html localStorage en el cliente - Al hacer un
$.ajax()
desde el cliente, siempre envíeuserid
y$token
como POST - Serverside, haga coincidir el
$token
proporcionado 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?