如何在 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 访问令牌不受支持的授权类型

Web Api 如何在隐式(或授权)授权流(OpenId)中验证令牌?

如何在axios中配置授权承载令牌?

如何在传入的http请求标头中添加授权令牌[关闭]

身份验证令牌和授权如何在 reactjs 中工作?

如何在websocket javascript客户端中传递授权承载访问令牌