Безопасные куки теряются при закрытии приложения Cordova iOS - PullRequest
1 голос
/ 15 мая 2019

Я использую Cordova (PhoneGap) и cordova-plugin-ionic-webview, чтобы использовать точно настроенный Ionic Engine (который использует WKWebview).

Я могу использовать безопасные и httponly Auth Cookies для входа в систему, и все работает, пока я использую приложение для iOS. Когда я закрываю приложение, хотя куки теряются.

Как я могу предотвратить это?

Эта проблема отсутствует на Android (и localStorage правильно сохраняет свое состояние на обеих платформах).

Все еще не решена проблема с их Github: https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/87

1 Ответ

1 голос
/ 16 мая 2019

Я думаю, что по умолчанию теперь кажется, что WKWebView устанавливается на проекты ionic или cordova, по крайней мере, в моем случае (в виде плагина в папке плагинов). Поэтому я удалил плагин и добавил эту строку в мой config.xml:

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

Затем я установил это глобально для моего HTTP-провайдера:

$httpProvider.defaults.withCredentials = true;

или это можно сделать для каждого HTTP-запроса:

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

Затем я установил это в моих .php / server файлах:

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 / сеанс на каждой странице / запросах в моем приложении.

Надеюсь, это поможет.

Edit:

Из того, что я мог найти, когда у меня возникла эта проблема, не было способа сохранить файлы cookie / сеанс с помощью WKWebView, так как Apple не добавила исправление (я могу быть совершенно не прав, это именно то, что я обнаружил в тот момент. Я думаю, что вам либо пришлось вернуться к UIWebView, либо использовать совершенно другой метод.

...