1
JiShuTui 2016-05-16 22:20:52 +08:00
建议先仔细学习一下单点登录的原理,你的疑问都能得到解答。
|
2
Syc 2016-05-16 22:45:01 +08:00 via Android
UCenter 走起
|
3
markmx 2016-05-16 22:50:57 +08:00 1
CAS 一般 适用与封闭系统 类似 SNS 之类的。
论坛 等 一般可匿名浏览的不适用 CAS 。 因为 A 站访问时 会拦截跳转到 CAS 进行密钥验证。在访问 B 站时,再次跳转到 CAS 上进行验证。 如果想要让用户感觉不到跳转的过程 可能需要改造一下验证机制,异步进行登录验证 。 |
4
9hills 2016-05-16 22:56:03 +08:00 via iPad
匿名也可用 CAS ,没问题的,不强制要求登录即可。
|
5
gdtv OP @markmx 访问 A 站-->跳转到 CAS 验证-->跳转回 A 站,此时 A 站是已登录状态。 此时再访问 B 站, B 站需要跳转到 CAS 验证吗?如果不需要,那么 B 站如何获取登录状态?根据 session 或者 cookie ?
|
6
501956430 2016-05-16 23:36:26 +08:00 via iPhone 1
@gdtv a 登录成功后 cookie 中已经有 sessionid 这个事设置在根域名下的 再次访问拿 cookie 去登录的
|
8
markmx 2016-05-17 09:28:53 +08:00 1
@gdtv b 站 肯定要跳到 CAS 进行验证的 , 其实有 COOKIE 的就是 CAS,
A 和 B 站 COOKIES都是根据CAS的 交换过来的数据进行生成的. 其实同步登陆好做 至少有个触发点..同步退出 是个蛋疼的问题.. 上面说过 如果不想来回跳 可以做个异步 ! |
9
gdtv OP @501956430 a 登录成功后 cookie 中已经有 sessionid ,此时打开 B 的页面, B 可以直接得到登录状态吗?
|
10
gdtv OP @markmx 在 A 站已登录的情况下,我的系统现在就是 b 站要跳转一次到 CAS 进行验证,但是看网上的说明说 B 站不用跳转,直接就能获取到已登录状态。
|
11
markmx 2016-05-17 10:21:40 +08:00 1
肯定是需要跳转到CAS的. 记录COOKIES或者SESSION是浏览器的行为.服务器之间是无法做交换的.
不想跳就 AJAX 过去一个页面过去.. |
13
Shikyou 2020-06-24 16:58:12 +08:00
这一类实现单点登录的用户管理的云服务已经很多了,为什么还要自行开发呢?
比如国内的 Authing,还有美国的 Auth0 和 AWS Cognito 都行的(国内由于政策原因用不了)。 用了以后就回不去了,再也无需开发、运维用户系统。 |