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