分布式 - CAS 架构实现 SSO 单点登陆

本文介绍了分布式系统中单点登录(SSO)的概念和实现总结。通过Token保存登录状态,讨论了Session数据共享的方案,包括Redis存储。此外,还探讨了多域名下Cookie跨域问题及其解决方案,并测试了Flask框架下无跨域隔离的情况。最后,提到了基于中间件和中控机的SSO实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、单点登录概念

二、分布式系统 SSO 实现总结

2-0 单机部署的登陆状态保存

2-1 分布式部署的登陆状态保存

2-2 分布式SSO实现

2-3 多域名的 Cookie 跨域问题(暂时未测出跨域,暂留)

2-3-0 跨域测试

三、基于分布式的SSO实现

3-1 使用中间件实现登陆功能验证

3-2 使用中控机实现sso(推荐)


一、单点登录概念

掘金 - 参考学习 - 基于Java 实现 SSO

Single Sign On(简称SSO),基于分布式系统的概念,在多个系统中共用一个登录判断。即,用户在A系统内登陆,操作B系统时,默认用户已经登陆。

二、分布式系统 SSO 实现总结

2-0 单机部署的登陆状态保存

  • 用户登录时,验证用户的账户和密码
  • 生成一个Token保存在数据库中,将Token写到Cookie中
  • 将用户数据保存在Session中
  • 请求时都会带上Cookie,检查有没有登录,如果已经登录则放行

2-1 分布式部署的登陆状态保存

在分布式中,仍然延续使用Token来判断登陆状态的key,但是Session却存在着多系统数据无法共享的问题在。

Django - cookie 、session

Flask - Session

Session 数据共享解决思路

  • 在 Django 内的 Session 默认保存在对应的 django-session 表内,可以对对应的数据库进行集群部署,集群内的表完全同步。【会影响集群的性能呢,不建议</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值