项目一个需求,单点登录,从oa系统到我们系统,用户如果登录了不需要再次登录,怎么判断用户在oa过来的。
解决方案:javascript 有一个可以获取前一页面的URL地址的方法 document.referrer
无法获取 referrer 信息的情况
下面的场景无法获得 referrer 信息
- 直接在浏览器中输入地址
- 使用
location.reload()刷新(location.href或者location.replace()刷新有信息) - 在微信对话框中,点击进入微信自身浏览器
- 扫码进入微信或QQ的浏览器
- 直接新窗口打开一个页面
- 从https的网站直接进入一个http协议的网站(Chrome下亲测)
a标签设置rel="noreferrer"(兼容IE7+)meta标签来控制不让浏览器发送referer- 点击 flash 内部链接
- Chrome4.0以下,IE 5.5+以下返回空的字符串
- 使用 修改 Location 进行页面导航的方法,会导致在IE下丢失 referrer,这可能是IE的一个BUG
- 跨域
探讨了在项目中实现单点登录(SSO)功能,使用户从OA系统跳转到目标系统时无需二次登录的技术方案。介绍了通过JavaScript的document.referrer属性来判断用户是否从OA系统过来的方法,并列举了无法获取referrer信息的各种情况。
1279

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



