gpt4 book ai didi

ruby-on-rails - WkWebView 有时会丢失 session 变量

转载 作者:行者123 更新时间:2023-11-30 10:36:12 25 4
gpt4 key购买 nike

我有一个 Ruby on Rails 后端 Web 应用程序。我使用 iOS 应用程序作为用 swift 编写的 Web 客户端(WKWebView)。身份验证 token 作为 session cookies 变量存储在后端:

session ['token'] =generate_token

问题是这个 session 变量意外丢失并且流程被重定向到登录页面。WKWebView并没有关闭,只是用来处理HTTP请求。我无法弄清楚为什么会意外发生这种情况。

最佳答案

由于您仅使用 webView 而不是默认的 Safari 浏览器,这意味着您正在制作自定义浏览器,因此您有责任处理诸如缓存当前 session 的 token 之类的事情。我的建议是,如果您希望 token 仅存储和使用一次,则创建一个类似的变量

let accessToken = "your json web token"

然后在向服务器发出请求时将其作为 header 传递。

如果您想保持访问权限,那么您可能需要根据安全级别将 token 保存在 keyChain 或 userDefaults 中。

导航和其他用户交互

正如我所提到的,使用 wkwebView 意味着您正在制作自己的浏览器,因此您必须在用户与您的网页交互时检测后续请求。对于导航,您必须使用 WKNavigationDelegate方法。

如果WKNavigationDelegate不能解决您的问题,那么您必须使用Javascript事件,即..当用户访问某个页面并使用WKScriptMessageHandler时发布事件通过传递访问 token 等来响应这些事件。

关于ruby-on-rails - WkWebView 有时会丢失 session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57974186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com