我有 native iOS 应用程序,应用程序的流程之一应该使用 WebView 完成。从应用程序的 native 部分,用户可以导航到 WebView 部分。而且,不知何故,网页应该识别用户。我在应用程序中存储了授权 token ,当然我可以在 WKWebView 的 header 中传递该 token 。其他东西将在网络中处理(路由等)。但这样做是一种好的和安全的方法吗?如何在关注token的应用中轻松集成WebView?
最佳答案
这里有几个选项:
根据 this thread,使用 header 似乎有问题但希望你能让它发挥作用。如果 token 在 web View 中过期,感觉这会有可靠性问题,因此您需要对其进行管理。
简单选项:打开系统浏览器 - Safari 或 Safari View Controller 。不过,用户可能必须重新登录,您的利益相关者可能不喜欢这样。
更复杂的选项:使用 Javascript API 将 token 从移动用户界面传递到网络用户界面。这将为您提供完全控制权,网络应用程序可以回调移动应用程序以刷新其 token 。如果谨慎使用,它可能是最佳可用性选项。不过,它需要在 Web 和移动 UI 中进行棘手的基础工作。
安全
如果两者都是同一逻辑应用程序的一部分并且访问同一级别的数据,则将 token 从移动用户界面传递到 Web 用户界面是很自然的。在这种情况下,选项 1 或 3 会起作用。
如果应用程序具有非常不同的安全级别(例如,网络应用程序现在获得比通常获得的特权 token 高得多的特权 token ),那么我不会传递 token ,而是使用选项 2。
更多详情
前一段时间我写了一篇关于注意事项的非常详细的博客文章,还有一个代码示例可以运行:
关于ios - 如何在 WKWebView 中支持授权 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66692562/