这是一个秘密
网上有很多关于redirect传递参数的说明,无非有两种方法,一种在url直接拼,另一种就是放session。什么springMVC传参数,那都是对这两种方式的一个封装。解决不了根本问题。
我遇到的问题是,我的redirect是跨域的,我作为用户中心,提供sso。第三方系统登录需要跳转到统一的登录页面,然后登录后跳会第三方系统。
而且跳转过程要么需要带回调地址,要么带一个长长的jwt token。让浏览器的域名很难看。
既然跨域session就不能用了。要传参数只能用url了。需求简单,处理方式也只有一种,结果就是无解。
然而山人自有“诡”计。sso的服务器和给第三方的sso过滤器都是我做,不就是要浏览器的地址栏干净吗。
妙计来了,不管是sso的服务端还是sso的拦截器,发现有回调地址和token参数时,马上再重定向一次到自己。同时把参数放sessin里。这下session是自己的了。简直太帅了....
看网络请求必然是一堆的重定向,原来的问题并没有解决。但是地址栏确实是干净了。
这里还有一个问题,就是回调地址,目标地址可能本身是带参数的,这时候不能给人家省了,还要给再拼接回去。确实有点麻烦。
不过目的达到了。
博客围绕跨域redirect传递参数展开,指出常见传递参数方法有url拼接和放session两种。因跨域session不可用,作者提出在sso服务端和拦截器发现参数时,重定向到自身并将参数放session,解决地址栏难看问题,同时还需处理目标地址带参数的拼接。
1243

被折叠的 条评论
为什么被折叠?



