关于Cookie的问题

关于Cookie的问题

以课程中的项目为例:

.mtv 先登录 -> .mtv域名下没有user-ticket的cookie -> 跳转到 .sso域名下login.html -> 做相关操作(其中会把user-ticket:[uuid]写入sso域名下的cookie中)

那么,问题是:

当用 .music登陆时,.music域名下应该也没有user-ticket:[uuid]这个cookie,那不是也应该跳转到.sso域名下login.html 页面吗?为什么在实际的场景下,.music在第一次登陆的时候就能在它的域名下能找到user-ticket:[uuid]这个cookie

或者,换个问法,我不理解的是:域名、cookie、request、response的关系?

比如:www.a.com这个域名发起一个 /do 的request,那么当服务器使用request.getCookie()的时候,是不是只能获得.a.com下的cookie,同时若在response.addCookie()的时候,是不是也只能写到.a.com下?

如果是这样,那么.mtv首次登陆后,user-ticket:[uuid]这个cookie应该是写到.sso的

                   而.music登陆时,调用的/login也应该只会带有.music域名下的cookie

                   那为什么在.music调用了/login后,在@GetMapping("/login")
public String login(String returnUrl,Model model,HttpServletRequest request,
                   HttpServletResponse response)方法的String userTicket = getCookie(request, COOKIE_USER_TICKET);逻辑中,可以获得.sso域名下的user-ticket:[uuid] cookie?


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

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

4回答
qq_Nicochan_0 2020-05-27 17:56:14

我和你的疑问是一样的,全局门票是放在sso域名下的,为什么重定向到mtv之后调用doLogin可以获取到全局门票。

  • 看了几遍老师回答的问题,我终于理解了。
    2020-05-27 18:08:23
慕移动2268350 2020-03-24 18:38:56

1、不同的顶级域名之间的cookie是不能够共享的,所以cas和另外两个系统都是独立的cookie

2、用户随便访问一个外部系统,进入到cas;如果用户从来没有访问cas,则第一次访问会要求登录,此时就会create一个cas的cookie,存入到用户的浏览器中,并且会存入到redis中,和全局门票绑定,以及临时票据的create和回传

3、此时外部系统获得回传过来的userVO,便完成了登录

4、之后用户再访问另一个外部系统,同样会进入到cas,但是此时已有了cookie,并且全局门票和redis中的用户信息全部都能够对上,则表明用户已经验证登录过。此时便直接create临时票据并回传

5、那另一个外部系统也就获得了userVO,便实现了SSO

Java架构师讲师团 2020-01-23 12:40:31

Sso下的cookie代表是全局,代表用户登录过。其他各自的事和自己系统有关的。你可以看一下cookie设置。每个域名下都有。意思就是在sso登陆过有cookie就代表登录过了,其他系统过来是检验一下,虽然是从别的域名跳过来,但是本身sso域名下就有cookie了。

  • 提问者 慕函数2082699 #1
    嗯,这个意思我理解,但是在代码层面,.music发一个request给.sso的,那么这个request中能得到.music的cookie?还是.sso的cookie?还是.music和.sso的都可以?
    2020-01-23 12:45:07
  • 只能获得自己域名下的,虽然跳转了,他获取的也是自己页面里的
    2020-01-23 12:52:35
Java架构师讲师团 2020-01-23 12:37:53

提一个小建议,如果对cookie,request,response不清楚嗯,先去看看javaweb这一块内容,慕课网的免费视频里都有。

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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