BlackBerry Dynamics SDK:通过 "Set-Cookie" 标头在 HTTP 和 XMLHTTP 响应中设置的特定 Cookie 未在 WebView 中设置



升级到BlackBerry Dynamics SDK (v10.1)及更新版本后,某些特定cookie未设置。

注意:我们使用的是本地WKWebView并访问我们的服务器,它会尝试设置以下cookie。

问题#1:特定的HTTP cookie没有在WebView中自动设置。

从服务器的响应中接收到以下cookie:

1f6cf18f-2410-4756-8f7c-f2c18d2877ae=%7B%22state-version%22%3A%221%22%2C%22state-data%22%3A%22baV9DYCXeC01d295qcJX%2F3TjgXLgT4DQdQkkuhYnBBWkWsICTfElQxlmCrHBDI%2BK3kK7NlHFhmvv0xEd4NNGl4b7C7NMoMTLy2bikETGx7N2Izj4hvBUTSulI2riBHS0KP7Yn987Zu76ay%2FkeU7KBRAYORcSMV6KURNXYnvWOQ%2Bblvv4aNKD%2F9hINd2KYMlqqVv%2FL%2FhEirllZaPVLE4gV%2B%2BFpx%2FBWNmJbyAXDhFbszCRaxXh0hnVhMY6sCpBtI%2FiqvrNnGADTO0PTthrVXKe16%2B0JIjHVKUf7djyGlpwsR4Sjvbj3V8TUp0FuKJ9d4ruU9rrKc1syDCdwD3Sy3o%2Fmr2DoCE0AEawxOBleDctnJa9xejhSukg76EUQfXB6Lz3nSHEtkq2cTKf7n737mNPMzJRxBnfoykR%2FEk6gJ0%2Bf0wjsK%2F0FnzmgHD77hyR%2BMmipCo9zuBbuphIZ9CEDWQ5O458QV2KIoj%2FVKw%2FwBlTn2sm4ha%2BnBYT6SGkF18RZE3jAJtiBtjckl3mCFZ3z8JLi2p5rlewBDbJuyjB1Rn2hM6sDdHxa%2BhyVg0e2qpO12akwAHZa%2FdCE7mB9yptdtd86gjSbyfzGVKe5XviinQeYa8%3D%22%7D; Path=/path/of/the/cookie; Secure; HttpOnly; SameSite=None
  1. 我们注意到只有这个特定的cookie没有被设置,而其他HTTP cookie正在设置。
  2. 如果我们使用[WKNavigationDelegate webView:decidePolicyForNavigationResponse:decisionHandler:]拦截WKWebView中的响应,然后使用[WKHTTPCookieStore setCookie]设置cookie,它似乎可以工作。

问题#2:未设置XMLHTTPResponse中设置的cookie。

  1. 在' set - cookie '报头中收到的XMLHTTPResponses cookie未被设置。
  2. 如果我们通过在WKWebView中使用[WKUserContentController addUserScript]注入ajax拦截器脚本来拦截响应,然后使用[WKHTTPCookieStore setCookie]设置cookie,似乎可以工作。

根据我们SDK团队的响应,SDK不支持处理与响应路径不同的cookie。如果响应来自/path1,并且包含/path2的cookie,则不会应用此类cookie。

假设这是你的情况-主响应的路径与cookie中指定的路径不同。例如,来自Ajax的响应来自www.google.com/another_path,但是cookie指定了Path=/Path/of/the/cookie;

建议解决方案:您可以尝试将cookie中的路径更改为"path=/;"。或者,尝试发送请求到www.google.com/path/of/the/cookie,如果你的服务器仍然返回这样的cookie响应,然后路径=/Path/的/the/cookie;

希望对你有帮助。

相关内容

  • 没有找到相关文章

最新更新