【问题标题】:Issue with cookie value not being encoded for cordova android app using Crosswalk没有使用 Crosswalk 为 cordova android 应用程序编码 cookie 值的问题
【发布时间】:2017-05-19 14:44:39
【问题描述】:

设置

目前,我有一个 Cordova android 应用程序,它使用人行横道作为 web 视图,而不是默认的 chromium 浏览器。应用程序本身在登录期间访问 AuthProvider,并且从 AuthProvider 传回的 cookie 存储在 Android 的 CookieManager 中。

我已验证我能够通过域检索特定于该身份验证提供者的 Cookie。

问题

对于简单的情况,当 cookie 的值不包含“=”符号时,一切正常。我可以更新甚至使 cookie 无效。但是,我注意到当身份验证提供程序返回一个 cookie 时,该 cookie 中的值带有“=”(例如 Cookie 字符串 =“AuthCookie=a=b=c=d”,其中 AuthCookie 是 cookie 名称,值为“ a=b=c=d”。出现这种情况时,“a=b=c=d”在未编码的情况下是一个无效的cookie值,结果CookieManager的方法(setCookie)不起作用。没有办法更新甚至使该 cookie 无效。

有趣的是,cookieManger 甚至不允许您设置值为“a=b=c=d”的 cookie。问题是我相信 cookie 值是由浏览器设置的,它从 authprovider 的响应中解释 cookie 并更新数据存储。但是,我认为它从未对 cookie 值进行编码。

目标

真正的目标是我需要能够使通过 AuthProvider 浏览器存储的特定 cookie 无效。

为cookieManager提供的功能

setCookie(, );

函数本身接受一个包含cookie名称和值的cookie字符串的问题。我只希望对 cookie 值进行编码。唯一的问题是我不是 AuthProvider 如何在 cookie 存储中设置 cookie。

我需要重写 cookieManager 的设置方法吗?基于“;”解析所有cookies然后解析第一个“=”符号的所有cookie,然后对右侧的所有内容进行编码?

我也不知道浏览器是否调用了 cookieManager:setCookie() 来存储身份验证提供者的响应?我不相信这种情况,因为 setCookie(domain,"auth=a=b=c=d") 不起作用。至少使用 XWalkCookieManager

或者是否有另一种方法可以更新或使“auth=a=b=c=d”的 cookie 字符串无效。当我尝试 "setCookie(domain, "auth=super") 时,没有抛出异常。然后我将调用 getCookie(domain),它会返回 null。在 XWalkCookieManager 中抛出 UnsupportedOperationException,结果返回 null。我没有来源,所以我无法更深入地了解为什么会抛出 unsupportedOperationException。

关于如何解决此问题或解决方法的任何建议? 谢谢, 德里克

【问题讨论】:

    标签: android cordova crosswalk android-cookiemanager xwalkview


    【解决方案1】:

    我发现了这个问题。它必须处理我使用的cordova plugin crosswalk webview 版本。

    破解版:cordova-plugin-crosswalk-webview 1.8.0 “Crosswalk WebView 引擎” 工作版本:cordova-plugin-crosswalk-webview 2.2.0 "Crosswalk WebView Engine"

    实际上,这仅解决了无法在 cookie 值中设置嵌套值的问题。

    有时使用身份验证提供商的 cookie,您仍然无法准确地使 cookie 无效。不知道解决方案是什么。

    【讨论】:

      猜你喜欢
      • 2015-07-13
      • 1970-01-01
      • 2018-02-12
      • 2015-05-01
      • 2023-03-28
      • 2012-08-30
      • 1970-01-01
      • 2017-10-20
      • 2016-01-17
      相关资源
      最近更新 更多