此次小项目,对接的是公司的系统,让部门同事配置了入口,由于是第二次对接,我想着问题不大,但是系统需要兼容IE8,所以对接过程中还是遇到些问题,由此记录一下:
配置好入口后,系统会分配用户参数加密加签后跟在url后面,前端获取参数发送后端换取token,在我们自己的系统中,始终以token作为校验条件请求网关。由于有两个页面,我的想法是拿到token后,存储在cookie,全程在本机联调测试,没啥问题。
问题就出在开发环境中,内嵌到其他系统后,进入就报错提示token失效,我把参数拿出来在本机调,发现都是ok的。然后把参数和token都打印出来,就发现问题了,设置cookie的操作似乎失效,打印后发现,无论更新多少次,token根本没变。接着各种百度,但是都没解决。后面只能换思路,不用存储(session应该也是一样的效果,IE的浏览器内核,frame内嵌的页面,由于浏览器的安全机制,可能无法读取cookie以及sesstion)
替换方案就是,将后端返回的token绑定在页面元素的自定义属性上,后面每次请求,就去获取该节点的自定义属性,跳转其他页面时,将自定义属性作为参数拼接在页面地址上,其他页面发请求时,再去页面参数解析token,以上勉强能实现,能力有限,或者还有其他优化方案,暂时还没摸索出来,比较失望的是,各种博文的内容大同小异,都是互相抄,真正的干货很少。
网友评论