问题描述
最近遇到一个很奇怪的问题,在做开发的时候需要从一个系统单点登录到一个H5系统,此H5系统使用vuejs开发,然后单点登录时在另外的系统使用response.sendRedirect跳转到一个sso的vue路由路径:
http://h5.xxx.xxx/mobile/#!/sso?jwt_token=xxxxxxx
此跳转在Windows环境、Android环境都能正常跳转过去,并且hash部分/sso?jwt_token=xxx等信息都保留,
但是到了iOS,Mac电脑跳转的时候后面的hash部分丢失了,因此造成了单点登录失败。
问题原因
在iOS和Mac平台上的Safari其实有个问题,在URL路径没有完全精确匹配的情况下会丢失hash:
参考:
最终解决问题,其实最终跳转后的页面会停留在/index.html页面上,默认如果没有带上/index.html的话在chrome等其他浏览器上都正常,但是在Safari上是有问题的,因此给redirect的URL添加上/index.html解决问题。