验证临时票据过程中,无法从cookie中获取用户票据
老师,请教个问题:
将用户票据设置到cookie的过程是发生在,cas模块的统一登录过程,是由cas自己的登录页面发起的请求,相应的cookie设置到了sso.com这个域下
从cookie中获取用户票据的过程,是发生在验证临时票据的过程中,这个请求是mtv.com这个应用发起的,从request中获取cookie,再获取对应的用户票据,这个请求发生在mtv.com这个域下,应该是获取不到sso.com这个域下的cookie啊
我自己在本地跑的时候,也一直获取不到,下面的代码中的userTicket一直返回的是null
// 1. 验证并且获取用户的userTicket
String userTicket = getCookie(request, COOKIE_USER_TICKET);
正在回答 回答被采纳积分+1
题主,我也遇到这个问题,请问题主后来是怎么解决了?
查看前端代码的时候,发现使用了一个技巧
axios.defaults.withCredentials = true;
axios.post('http://www.sso.com:8090/verifyTmpTicket?tmpTicket=' + tmpTicket)
通过设置withCredentials参数,虽然请求跨域,但是cookie也是可以携带的,这个应该是个关键点。但是问题来了,我们目前的CAS认证的这种模式的目的就是为了解决顶级域名不同无法共享Cookie这个问题。通过设置withCredentials的方式是不是与CAS的初衷有点儿违背呢?
mtv请求不到sso域名下的,不能跨域。但是sso的后端是可以获取到的呀
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星