así que tengo un requisito en el que necesito manejar un caso en el que cuando inicia sesión en un sitio web, debemos poder iniciar sesión en otro sitio web
Déjame explicarte Digamos que hay un sitio web principal y un sitio web secundario, ambos sitios web tienen los detalles de usuario de quién va a iniciar sesión.
//PARENT WEBSITE <!DOCTYPE html> <html> <body> <iframe src="https://childwebsiteurl?param=parentwebsitetoken" title="this is child website"> </iframe> </body> </html>Entonces, básicamente, quiero una solución en la que, cuando inicie sesión en el sitio web principal, también deba iniciar sesión en el sitio web secundario.
En este momento tengo una solución en mente: cuando el usuario inicie sesión en el sitio web principal, obtendré un token y ese token lo pasaré al sitio web secundario (aquí asumimos que el backend del sitio web principal y el secundario tiene medios para verificar el token, n ambos tienen la información del usuario) y de esa manera puedo iniciar sesión en el sitio web secundario y el sitio web secundario se muestra en el iframe del sitio web principal.
Mi única preocupación es, ¿hay una forma estándar de hacer esto, o lo que he propuesto es correcto?
Gracias por adelantado.
Me imagino que puede abordar eso simplemente almacenando su token de sesión en localStorage una vez que haya iniciado sesión en el sitio web principal.
Dado que localStorage es único y no se puede compartir entre diferentes orígenes, es posible que desee implementar el almacenamiento local entre dominios: ( https://github.com/zendesk/cross-storage ). Esto debe hacerse si el sitio web principal y el sitio web secundario no comparten el mismo dominio, o incluso si el secundario es un subdominio del principal.
Una vez que obtuvo esa implementación, en el lado del cliente del sitio web secundario, puede simplemente leer su localStorage en el momento del montaje y verificar si hay un token válido allí, de ser así, simplemente inicie sesión como usuario.
Todo esto asumiendo que ambos sistemas solo requieren un token válido para otorgar permisos al cliente, si solo pasa el token generado en el primer sitio web, no necesita pasar la información de inicio de sesión del usuario para iniciar sesión en el sitio web secundario, porque el token ya está generado para ese usuario.
También podría publicar datos no confidenciales en su almacenamiento cruzado para mejorar la personalización, como el nombre del usuario.
Necesita una solución de inicio de sesión único (hay muchas soluciones de este tipo) o un token JWT.
Ambas soluciones lo registrarían en cualquier sitio web (principal/secundario/otro) donde tenga integración SSO o integración JWT.
Para sitios web angulares, el token JWT es más apropiado.