Tres implementaciones comunes de inicio de sesión único

Conocimiento básico:
 
Principio de sesión (almacenado en el lado del servidor, cada solicitud restablecerá la hora)
 
    Cuando el cliente envía una solicitud, el servidor determinará si hay una cookie llamada jsesion
    De lo contrario, el servidor creará una cookie llamada jsession, el valor de la cookie es uuid, y se creará una sesión con uuid como clave al mismo tiempo, y la cookie llamada jsession se devolverá al cliente al mismo tiempo.
    Si el cliente tiene una cookie y no se agota el tiempo de espera, la cookie denominada jsession se devolverá directamente al encabezado de la solicitud cuando se vuelva a solicitar
 
Principio de cookies (almacenado en el cliente, el tiempo no se restablecerá para cada solicitud)
 
           Solo se pueden almacenar cadenas al crear instancias de objetos de cookies en el lado del servidor.
           El tiempo limitado para configurar la cookie y el alcance y la ruta efectiva
           Siga el objeto de respuesta para responder al cliente
           Una vez que el navegador recibe la cookie, realizará una operación io y la almacenará en una carpeta local,
           Cuando el usuario vuelva a enviar una solicitud, siempre que se pueda obtener una o algunas cookies, el navegador la enviará automáticamente al cliente.
 
Inicio de sesión único ( SingleSignOn, SSO): 
 
Después de que el cliente inicia sesión en un proyecto, otros proyectos relacionados no necesitan iniciar sesión repetidamente
 
 
Primera foto:
 
1. Utilice el mecanismo de transmisión de sesiones para lograr
 
    El estado de la sesión de cada nodo que participa en el clúster se replica en todos los demás nodos del clúster. Siempre que cambie la sesión, los datos de la sesión se deben replicar nuevamente
    Tomcat, JBoss y todos proporcionaron tales funciones, entre las que Tomcat usa la replicación de transmisión de nodo de clúster y JBoss usa un mecanismo de replicación emparejado
    Ventajas: cada nodo tiene una copia de la sesión y otros nodos pueden hacerse cargo de su trabajo cuando un nodo tiene problemas
    Desventajas: la sincronización de sesiones entre nodos ocupará una gran cantidad de recursos del sistema y el rendimiento general disminuirá drásticamente a medida que aumente la cantidad de nodos del clúster.
 
2. Utilice cookie + redis para lograr
    
    (1) Cuando el cliente inicia sesión por primera vez, genera una cookie y una sesión correspondiente a través del servidor.
    (2) Almacene la cookie y el objeto Usuario (información requerida para iniciar sesión) generados durante el primer inicio de sesión en Redis en forma de clave-valor
    (3) Cuando el cliente accede a otra página que requiere una operación de inicio de sesión nuevamente, la cookie del cliente se lleva a Redis para comparar y, si existe, se considera que inició sesión.
    (4) Debido a que la sesión tiene un período válido, puede establecer el tiempo válido correspondiente en Redis
 
3. Utilice la implementación de token
    
    (1) Construir el sitio del servicio SSO
    (2) Obtenga las credenciales de inicio de sesión en el sitio SSO cuando el cliente inicie sesión por primera vez
    (3) El cliente toma las credenciales de inicio de sesión para iniciar sesión en el servidor
    (4) El servidor toma las credenciales de inicio de sesión del cliente para encontrar el sitio del servicio SSO para su verificación
    (5) La verificación de SSO se realiza correctamente y se notifica al servidor que el cliente puede iniciar sesión y continuar con el siguiente paso.
 
    

Supongo que te gusta

Origin blog.csdn.net/weixin_43562937/article/details/106698175
Recomendado
Clasificación