在 WKWebView 和 Safari 之间共享会话

Sharing a session between a WKWebView and Safari

我有一个 iOS 应用程序可以对 api 访问进行身份验证,我有一个请求将用户放入 safari,而不是 WKWebView,但仍然对他们进行身份验证。

是否可以安全地在 iOS 应用程序和完整的 safari 之间共享会话?

我已经研究过 WKProcesspools,但我不确定它是否能做到这一点。

不确定 WKProcesspools,但您可以使用查询参数共享会话。 格式化您的网站url 以包含验证令牌作为查询参数。

当您通过 API 验证用户时,您必须从响应中获取令牌。在您的 url 中将此标记作为查询参数传递并重定向到 Safari。

URL - https://www.example.com/page1
URL with token - https://www.example.com/page1?token=asdfv12324fvfropfc23as

特别注意防止 copy/paste 令牌:

创建令牌时,传递 IP 地址或 MAC 地址作为您 API 的参数,并根据这些地址检查请求是否来自同一地址。这将负责设备身份验证。