首页 新闻 会员 周边

单点登录???

0
悬赏园豆:50 [已解决问题] 解决于 2014-08-28 11:15

现有两个web项目 发布后是两个域名 但是项目公用的是一个数据库 假如有项目A和B 要求在A中登录后浏览B时候不需要登录 同样B登录再浏览A时不需要登录 怎么去做?同事说需要做单点登录 求解决办法????在线等

就类似于登录了淘宝了之后你访问天猫就不需要再登录了

王元勋的主页 王元勋 | 菜鸟二级 | 园豆:413
提问于:2013-12-21 09:54
< >
分享
最佳答案
0

首先解释下什么是单点登录

故名失意 单点登录就是在一个位置登录

原理

部署一个登录站点

然后其他站点都和这个站点产生关系 用这个站点登录

步骤一般如下

1.访问目标站点 发现没有登录

2.到登录站点登录

3.登录完成后 生成一个key 返回目标站点

4.目标站点通过key 获得用户信息 并保存登录状态

其二 解释下一个站点登录全部站点登陆的原理

如果是同域名情况下 可以通过cookie共享key

逻辑及为  如果key没 过期 直接通过key获得用户信息 并保存登录状态

如果是不同域名情况下

在登录站点 将key保存到cookie(cookie只是媒介 用active*之内的也可以)

然后 目标网站没有登录 跳转到登录网站 登录网站发现有key 直接返回之前页面 并将key 传过去

然后目标网站通过key获得用户信息 并保存登录状态

收获园豆:30
小眼睛老鼠 | 老鸟四级 |园豆:2731 | 2013-12-21 12:50
其他回答(4)
0

貌似写cookie时可以指定域名和路径的,不管哪个网站登录时都把两个域名的cookie都写上,不就行了

空明流光 | 园豆:106 (初学一级) | 2013-12-21 10:32
0

这个问题也有回答,http://q.cnblogs.com/q/58199/

ThreeTree | 园豆:1490 (小虾三级) | 2013-12-21 13:49
0

既然是数据库用的相同的,你可以在数据库中用一个标记,比如A登陆后 ,将表里的某一个字段标记为1,在另一个系统登陆的时候,先判断下这个标记如果还为1就不用登陆了,不知道这个方法行不行,或者用楼上的cookie

男人要爽 | 园豆:6 (初学一级) | 2013-12-22 18:36
0

SSO是个好东东,不过我总是觉得在点绕,可能是没理解透彻

收获园豆:20
jerry-Tom | 园豆:4077 (老鸟四级) | 2013-12-23 10:08

B站点是A站点的二级域名 可以用设置cookie的domain来共享cookie来实现吗?

支持(0) 反对(0) 王元勋 | 园豆:413 (菜鸟二级) | 2013-12-23 11:33

@_难得糊涂丶: 可以 

支持(0) 反对(0) 小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2013-12-23 17:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册