最新历史版本 :Safari浏览器跨域单点登录失败 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 问题描述

使用 Safari 浏览器跨域单点登录失败。

在移动端预览报表时,iOS 设备单点登录失败,Android 设备正常。

注:请确认移动端登录页面是原生页面还是 H5 页面。

  • 如果是原生页面,可直接使用原生的单点登录方式,这个不涉及跨域 。

  • 如果登录页面也是 H5 的,只能用常规的 JavaScript 单点登录。

1.2 原因分析

由于 cookie 问题导致单点失败。

Safari 浏览器安全级别比较高,跨域情况下,默认不允许第三方 Cookie 写入,或者只允许访问过的网站写入。

3. 解决方案编辑

1)对于 Safari 浏览器

  • 请在浏览器「设置>隐私」中,取消勾选「阻止跨站跟踪」

  • 请在浏览器「设置>隐私」中,取消勾选「阻止所有 Cookie」

如下图所示:

2)对于移动端 App 里的容器(比如 WebView)。

用户有自己的 App 框架前提下,需要用户自己的研发人员加两行代码,设置成接受 Cookie 即可。

9.png

代码如下所示:

NSHTTPCookieStorage *cook = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[cook setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];