单点登录(Single Sign-On, SSO)是一种认证机制,允许用户只需登录一次,就可以访问多个相互独立的应用系统,而无需每次重新登录。它通过在多个系统之间共享认证状态,简化用户体验,提高安全性和效率。
实现步骤:
- 认证中心:搭建一个统一的认证服务器,所有应用系统都依赖它进行认证。
- 用户登录:用户在认证中心登录,生成凭证(如Token或Session)。
- 凭证共享:通过Cookie、Token或OAuth等方式,在不同应用系统中验证凭证的合法性。
- 自动登录:用户访问其他系统时,通过凭证自动认证,无需再次登录。
常见技术:
- OAuth 2.0、SAML、JWT 是常用的SSO实现协议或方式。
在实现单点登录(SSO)时,前端的工作主要涉及以下几点:
1. 检测登录状态
前端需要通过向SSO服务器发送请求来判断当前用户是否已登录:
- 使用 Cookie 或 Token(如JWT)从浏览器中获取凭证。
- 向SSO服务器验证用户凭证的有效性。
2. 重定向至登录页面
如果用户未登录,前端会将用户重定向到SSO登录页面。
if (!isLoggedIn()) {
window.location.href = 'https://sso.example.com/login?redirect=' + window.location.href;
}
redirect 参数确保用户登录后能返回原始页面。
注意:除了返回url还需要传递其他参数,比如appId这些跟服务方约定的参数,以便认证系统完成验证,这个需要根据项目的实际情况来定。
3. 接收登录信息
用户在SSO服务器登录后,前端会接收到用户凭证(如Token),并将其存储到浏览器中,以便后续请求携带。
localStorage.setItem('token', receivedToken)

最低0.47元/天 解锁文章
1161

被折叠的 条评论
为什么被折叠?



