前端单点登录(Frontend Single Sign-On,SSO)是一种身份验证机制,允许用户在访问多个相关的应用程序或网站时,只需一次登录,即可访问所有的资源,而无需重复登录。其原理通常涉及以下步骤:
1. 用户访问第一个应用程序:用户在浏览器中输入地址并请求访问某个应用程序。
2. 未登录重定向:如果用户尚未登录,该应用程序会将用户重定向到身份提供者(Identity Provider,IdP)。
3. 登录认证:用户在身份提供者登录,提供用户名和密码等凭证进行身份验证。
4. 颁发令牌:一旦身份提供者验证用户身份成功,将颁发一个令牌(通常是 JSON Web Token,JWT)。
5. 返回令牌:身份提供者将令牌返回给浏览器,通常是通过重定向到之前访问的应用程序,并将令牌作为参数传递。
6. 存储令牌:浏览器收到令牌后,将其存储在本地,通常是在浏览器的本地存储或会话存储中。
7. 访问其他应用程序:用户在访问其他应用程序时,浏览器会将令牌作为身份验证凭据发送给相应的应用程序。
8. 令牌验证:接收令牌的应用程序会验证该令牌的有效性和权限,并在必要时向身份提供者请求验证。
9. 访问资源:一旦令牌被验证,应用程序允许用户访问相应的资源或执行相应的操作。
这样,用户只需要在初始登录时进行一次身份验证,就可以在整个会话期间访问多个应用程序而无需再次登录,从而提供了更加便捷和一致的用户体验。
附带一个较为详细的SSO登录流程和原理:前端实现单点登录(SSO) - 知乎 (zhihu.com)