现有两个web项目 发布后是两个域名 但是项目公用的是一个数据库 假如有项目A和B 要求在A中登录后浏览B时候不需要登录 同样B登录再浏览A时不需要登录 怎么去做?同事说需要做单点登录 求解决办法????在线等
就类似于登录了淘宝了之后你访问天猫就不需要再登录了
首先解释下什么是单点登录
故名失意 单点登录就是在一个位置登录
原理
部署一个登录站点
然后其他站点都和这个站点产生关系 用这个站点登录
步骤一般如下
1.访问目标站点 发现没有登录
2.到登录站点登录
3.登录完成后 生成一个key 返回目标站点
4.目标站点通过key 获得用户信息 并保存登录状态
其二 解释下一个站点登录全部站点登陆的原理
如果是同域名情况下 可以通过cookie共享key
逻辑及为 如果key没 过期 直接通过key获得用户信息 并保存登录状态
如果是不同域名情况下
在登录站点 将key保存到cookie(cookie只是媒介 用active*之内的也可以)
然后 目标网站没有登录 跳转到登录网站 登录网站发现有key 直接返回之前页面 并将key 传过去
然后目标网站通过key获得用户信息 并保存登录状态
貌似写cookie时可以指定域名和路径的,不管哪个网站登录时都把两个域名的cookie都写上,不就行了
既然是数据库用的相同的,你可以在数据库中用一个标记,比如A登陆后 ,将表里的某一个字段标记为1,在另一个系统登陆的时候,先判断下这个标记如果还为1就不用登陆了,不知道这个方法行不行,或者用楼上的cookie
SSO是个好东东,不过我总是觉得在点绕,可能是没理解透彻
B站点是A站点的二级域名 可以用设置cookie的domain来共享cookie来实现吗?
@_难得糊涂丶: 可以