Qt WebKit et cookies permanents

J’ai une fenêtre principale, une seule QWebView. Je souhaite rendre certains cookies permanents sur un site Web (www.kdkdkkd.com, par exemple). Ainsi, chaque utilisateur qui ferme et ouvre à nouveau le navigateur ne doit plus se connecter.

Merci,

Vous devez définir votre propre “Cookie Jar”.

  1. Utilisez QNetworkAccessManager::setCookieJar .
  2. Étendre QNetworkCookieJar – car il ne conserve pas les cookies par défaut lorsque le navigateur est fermé:

Une fois que l’object QNetworkCookieJar est supprimé, tous les cookies qu’il détient sont également supprimés. Si vous souhaitez enregistrer les cookies, vous devez dériver de cette classe et implémenter l’enregistrement sur disque dans votre propre format de stockage. ( QNetworkCookieJar documentation QNetworkCookieJar .)

Vous pouvez le faire en poussant le stockage permanent sur chaque QNetworkCookieJar::setCookiesFromUrl (le plus sûr mais le plus lent) ou uniquement lorsque la fenêtre du navigateur est fermée (globalement plus rapide mais moins sûre, car si vous quittez anormalement le cookie ne sera pas enregistré).

Notez que certains cookies ne sont pas supposés être persistants, vous pouvez utiliser QNetworkCookie::isSessionCookie pour le déterminer.

Il y a une démo officielle de Qt, appelée ” Browser “. Il implémente une classe CookieJar, qui prend en charge l’enregistrement et le chargement de cookies dans un fichier .ini, à l’aide de la stack QSettings.

Une fois le ou les cookie (s) enregistré (s) dans le NAM (NetworkAccessManager), configurez la vue Web pour qu’elle l’utilise:

myWebView->page()->setNetworkAccessManager(myNAM);