在 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 的参数,并根据这些地址检查请求是否来自同一地址。这将负责设备身份验证。
我有一个 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 的参数,并根据这些地址检查请求是否来自同一地址。这将负责设备身份验证。