单点登录 就是一个点登录 多个站点共享(个人理解)
环境:公司主站改版站点较多就考虑了必须实现单点登录。
因为cookie 是 不支持跨域的所以 想要实现 单点登录最重要的实现cookie 共享
来说一说我的代码思路:
第一步:记录returnurl 跳转登录前的地址以便登录成功后跳转回去
第二步:共享登录凭证,项目中本来想 用通知形式,即一个站点登录 轮询通知其他站点,因为是站点之间是二级域名和三级域名 。 这种就相对来说更为简单了,通过forms 认证 ,可以很简单 快速的实现cookie的共享,
但是 在实际操作中发现部分站点无法实现cookie 共享问题,cookie跨域写入成功但是读取不成功。针对这些问题项目组决定不能共享的站点单独写方法 判断登录
第三步:登录凭证共享成功后,仅凭本地的cookie并不能真正的登录,真正的登录状态需要从服务器缓存获取,根据本地保存的的登录凭证
做到以上几点 基本上就实现了单点登录。
下面附上部分关键代码,此处只是实现了二级域名的共享登录,二级域名的单独登录相对来说简单一些