如何在 WKWebView 中支持授权令牌?
Posted
技术标签:
【中文标题】如何在 WKWebView 中支持授权令牌?【英文标题】:How to support authorization token in WKWebView? 【发布时间】:2021-03-18 13:55:01 【问题描述】:我有本机 ios 应用程序,应用程序的其中一个流程应该使用 WebView 完成。从应用程序的本机部分,用户可以导航到 WebView 部分。而且,不知何故,网页应该识别用户。我在应用程序中存储了授权令牌,当然我可以在 WKWebView 的标头中传递该令牌。其他东西将在网络中处理(路由等)。但这是一种很好且安全的方法吗?如何在关心token的app中轻松集成WebView?
【问题讨论】:
【参考方案1】:这里有几个选项:
根据this thread,使用标头似乎有问题,但希望您可以让它工作。如果令牌在 Web 视图中过期,感觉这将存在可靠性问题,因此您需要对其进行管理。
简单选项:打开系统浏览器 - Safari 或 Safari 视图控制器。不过,用户可能必须再次登录,而您的利益相关者可能不喜欢这样做。
更复杂的选项:使用 javascript API 将令牌从移动 UI 传递到 Web UI。这将为您提供完全控制权,并且 Web 应用程序可以回调移动应用程序以刷新其令牌。如果谨慎使用,它可能是最好的可用性选项。不过,它需要在 Web 和移动 UI 方面进行棘手的基础工作。
安全
如果两者都属于同一个逻辑应用程序并访问相同级别的数据,那么将令牌从移动 UI 传递到 Web UI 是很自然的。在这种情况下,选项 1 或 3 会起作用。
如果应用程序具有非常不同的安全级别(例如,Web 应用程序现在获得的权限令牌比它通常获得的权限高得多),那么我不会传递令牌,而是使用选项 2。
更多详情
不久前我写了一篇关于注意事项的非常详细的博客文章,还有一个可以运行的代码示例:
Blog Post Mobile Bridge Code in Web UI Javascript Bridge Code in Mobile UI【讨论】:
以上是关于如何在 WKWebView 中支持授权令牌?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 grant_type 错误为 NULL - 使用 Pay Pal 的 REST API 访问令牌不受支持的授权类型