问题标签 [nshttpcookiestorage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3325 浏览

ios - WKWebView,获取所有cookies

我想从 WKWebView 获取所有 cookie。为什么?我已经开始了一个使用基于网络的身份验证的项目。因此,我应该拦截 cookie 以确保用户已登录并用于其他目的。另一种情况 - 想象如果用户登录,然后他“杀死”应用程序 - 由于存储此 cookie 会话的一些延迟将丢失:(。

问题似乎是 cookie 被缓存并且没有立即保存到文件中。

(@Kemenaran 从这里- 下面第 5 页)

我试图抓住他们的地方——

webView:decidePolicyForNavigationResponse:decisionHandler:,

但并非所有请求都是导航,因此会跳过一个 cookie(在我的情况下),请参阅下面的详细信息

在此处输入图像描述

关于我尝试过的其他选项的几句话......

  1. 是的,我知道从 iOS 11 开始,我们可以在这里WKHTTPCookieStore提及。但我的项目应该支持 iOS 9+

在此处输入图像描述

  1. 我 100% 确定,在登录后 5-10 秒后,所需的 cookie 将被保存到NSHttpCookieStorage(至少我在几天内的所有测试都证实了这一点)

  2. 我尝试使用提供的观察者NSHTTPCookieManagerCookiesChangedNotification,但它只为包含在其中的 cookie 提供回调webView:decidePolicyForNavigationResponse:decisionHandler

  3. 我还尝试使用此处提到的一些 JS 获取 cookie ,并测试此处的所有建议- 顺便说一下,这篇文章真的很棒。结果 - 否定

  4. 我还发现了这个雷达错误、这个SO 问题示例项目,但我什至想阻止这种情况。(在这篇文章中描述的不仅适用于删除,而且适用于保存)这种情况也是如此,当用户杀死应用程序时,可能会出现用户登录、杀死应用程序和重新启动的情况。并防止这种情况(简单地通过检查NSHttpCookieStorage所需的 cookie 也不是一个好主意,因为在登录后需要的 cookie 可以存储一些延迟,所以这种方法需要一些bool-powered解决方案,这看起来很奇怪..

  5. 我还阅读了一些关于一些相关问题的 SO 帖子,最有用的是

但仍然没有好的解决方案...

那么,是否存在任何获取或至少强制立即存储 cookie 的方法?

0 投票
0 回答
129 浏览

ios - HTTPCookieStorage 的 setCookies 方法说 URL 是可选的,但是如果你传入 nil 就会失败

嘿,所以我正在尝试使用 in 中的setCookies方法HTTPCookieStorage,并且我看到 URL 参数是“可选的”,但是当我传入 时nil,它会调用CFURLCopyHostName,这会隐​​式地解开 URL 和调用中断。

我可以添加一个 URL,但它在我的代码中有点笨拙,我不想这样做。有没有其他人遇到过这个?如果是这样,如果无论如何都将隐式打开它,为什么他们将 URL 参数标记为“可选”?我的 cookie 是否有一些特定的东西可能会使 URL 字段被解包,而在其他情况下,使用不同的 cookie,代码可能不会解包它?

谢谢

解包崩溃的堆栈跟踪

0 投票
2 回答
1771 浏览

ios - URLSession 在 iOS 上使用自定义 CookieStorage?

我需要一个将 cookie 存储在单独的 cookieStorage 中的 urlsession

在以下代码中 urlSession 中的 cookieStorage 与共享 cookieStorage 相同,是否可以创建单独的 cookie 存储

如果我使用初始化 cookie 存储,结果相同HTTPCookieStorage()

编辑

我尝试手动创建一个 cookie 存储并在请求完成后向其中添加 cookie

最后我得到 nil 作为饼干

0 投票
1 回答
751 浏览

ios - 如何监听 iOS NSHTTPCookieStorage 中设置的 cookie?

我想知道什么时候在 NSHTTPCookieStorage 中设置了 cookie。是否有 on change 方法或事件处理程序?我想防止设置 cookie。

0 投票
0 回答
254 浏览

ios - 使用 HTTPSCookiesStorage 我可以在 URLSession 中筛选(过滤)cookie 存储吗?

我对 HTTPCookiesStorage 进行了子类化,但是 storeCookies() 从不存储 cookie,尽管我在方法中调用 super.storeCookies()。

如果我不使用我的自定义 httpCookiesSession 对象覆盖配置,会话会自动存储 cookie。我有点迷失在这里。

这是 URLSession 调用

这是自定义类

更新 1 我的目标是当 Http 响应状态为 401 时,不将 cookie 存储在 httpcookiesstore 中

0 投票
0 回答
168 浏览

uiwebview - 与 SFAuthenticationSession 或 SFSafariViewController 共享 REST API 会话 cookie

实际上,我正在使用NSURLSession调用 REST API 服务,并获得了提供标头的会话 cookie。现在我想与SFAuthenticationSessionSFSafariViewController共享相同的 cookie,并在不登录的情况下加载网页。

我的问题:共享 API cookie 并在不登录的情况下加载网页。

请参考以下代码从 NSURLSession 获取 cookie:

0 投票
0 回答
453 浏览

ios - 共享 NSHTTPCookieStorage 会将持久性 cookie 同步到 WKWebsiteDataStore defaultDataStore httpCookieStore?

我发现了一个有趣的事实,shared会将持久性cookie( )NSHTTPCookieStorage同步到,谁能告诉我这是一个特性还是一种不可靠的行为?没有找到这方面的文档...isSessionOnly=falseWKWebsiteDataStore.defaultDataStore.httpCookieStore

在 iOS 13.2.2 和 12.1 上测试

POC

步骤1。创建持久性 cookie

第2步。从默认的 WK 存储中读取上一个 cookie

0 投票
1 回答
188 浏览

swift - 不具有 GroupContainerIdentifier 的持久性 HTTPCookieStorage

我设置了一个HTTPCookieStorage这样的:

我发现这样做HTTPCookieStorage.shared实际上可以保存 cookie,但这种习惯HTTPCookieStorage不是。如何让它持久化?

0 投票
1 回答
54 浏览

ios - cookie 会在 NSHTTPCookieStorage 中过期后自动删除吗

我有一个手动存储的 cookie NSHTTPCookieStorage ,每当我想读取 cookie 值时,我都会从 Cookiestorage 迭代所有 cookie 并找到我的 cookie 并读取它。

问题是有时我无法读取我的 cookie 值。当 cookie 过期时,cookie 会自动从sharedHTTPCookieStorage中删除吗

请说清楚

0 投票
0 回答
27 浏览

objective-c - iOS-如何在WKWebview中设置多个cookies

在下面的代码中,我只能保存一个 cookie,即“Abp.TenantId”,另一个没有保存。谁能帮我解决这个问题。我也尝试过使用 NSMutableURLRequest,但它对我也不起作用。