关闭Cordova iOS应用程序后,安全Cookie将会丢失

时间:2019-05-15 20:37:31

标签: ios cordova ionic-framework hybrid-mobile-app phonegap

我正在使用Cordova(PhoneGap)和cordova-plugin-ionic-webview使用微调的Ionic Engine(使用WKWebview)。

我能够使用安全和仅HTTP身份验证Cookie进行登录,并且在使用iOS应用程序时一切正常。当我关闭应用程序时,尽管cookie丢失了。

如何防止这种情况?

Android上没有此问题(并且localStorage在两个平台上均正确保持其状态)。

在他们的Github上仍未解决问题:https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/87

1 个答案:

答案 0 :(得分:1)

我认为默认情况下,现在看来似乎已经在ionic或cordova项目上安装了WKWebView,至少在我看来还是这样(它在plugins文件夹中显示为插件)。因此,我卸载了该插件并将此行添加到我的config.xml中:

<preference name="CordovaWebViewEngine" value="CDVUIWebViewEngine" />

然后我为HTTP提供程序全局设置此值:

$httpProvider.defaults.withCredentials = true;

或通过这种方式针对您拥有的每个HTTP请求执行此操作:

$http.post(url, {withCredentials: true, ...})

然后将其设置在我的.php /服务器文件中:

header("Access-Control-Allow-Origin: http://localhost:8100"); // make sure this is the same on the client side
header("Access-Control-Allow-Headers: content-type,authorization");
header("Access-Control-Allow-Credentials: true");

上面提到的修复程序使我可以在应用程序的每个页面/请求中保留相同的cookie /会话。

我希望这会有所帮助。

编辑:

从我遇到此问题时可以找到的内容,无法使用WKWebView保留cookie /会话,因为Apple尚未添加修复程序(我可能是完全错误的,这就是我当时发现的结果。我认为您要么必须还原到UIWebView,要么完全使用其他方法。