为什么要有全局门票

为什么要有全局门票

看注释写的是”生成ticket门票,全局门票,代表用户在CAS端登录过“, 我们用分布式会话的那个key不就能判断是否登录过吗

```

// 用这个值不就可以判断是不是登录过吗,我猜是因为之前用过这个key, 那我们换一个key不就可以了吗

redisOperator.set(REDIS_USER_TOKEN + ":" + userResult.getId(),
       JsonUtils.objectToJson(usersVO));

```

http://img1.sycdn.imooc.com//climg/5e64cd9809232e7710440588.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
Java架构师讲师团 2020-03-08 19:04:42

嗯是的,但是要考虑到如果没有使用redis的场景,如果现在所有的系统,都没有用到redis,那么我们在这里就假设是一个tomcat好了,那么所有系统不能共享会话。在这种情况之下的cas。这个全局门票就能作为用户全局登录过的表现了。或者说这个全局门票是用来表示用户已经在某个系统中登陆过。
比如我去动物园,有东南西北四个门,我不论从那个门进,都能有一个门票,每个门的门票都一样,都是表示用户全局买过票了,可以愉快的玩耍了。

  • 提问者 慕才子 #1
    都没有使用redis, 都不能共享会话说的是, cas是个tomcat,应用A是另一个tomcat,应用B是一个tomcat这个意思吗?如果是,那应用A、B要怎么校验用户是否登录,他都拿不到cas那个tomcat里边的东西,比如session
    2020-05-17 23:28:19
  • 风间影月 回复 提问者 慕才子 #2
    对啊。各自都是tomcat的话,会话由cas产生,登录以后再把会话token回传过去。这样各自系统就有token了,当然各自的子系统也可以额外再去产生一个自己的小token会话也是可以的。 下周1不是有jwt和oauth2的直播嘛,你可以看看,也可以用来做鉴权以及会话,这种方式会更好更安全,哈哈哈
    2020-05-18 00:31:47
  • 提问者 慕才子 回复 风间影月 #3
    是不是和群里说的差不多,每次前端请求一个接口就把userid从cookie带到后端,后端拿到这个id,就带上去http请求cas,cas提供一个接口告诉他这个id有没有登录会话,这样子吗
    2020-05-18 00:54:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师