J'utilise Tornado pour construire un serveur web et maintenant je code le module de connexion: après avoir fait le login, l'utilisateur peut envoyer un message au serveur.
Tornado: comment renvoyer des cookies avec ajax
Mon idée est comme ci-dessous:
Lorsque la connexion de l'utilisateur avec succès, le serveur définir un cookie sécurisé: self.set_secure_cookie("user", username, expires=time.time() + 60)
. Puis, lorsque l'utilisateur envoie un message au serveur, la requête doit contenir le cookie que le serveur vient de définir pour indiquer au serveur l'identité de l'utilisateur. S'il n'y a pas de cookie dans la requête, le serveur redirigera vers la page de connexion.
Maintenant, le problème est le suivant: le serveur ne peut obtenir aucun cookie.
Vous pouvez voir qu'un cookie est défini lorsque l'utilisateur ne vous connecter.
Puis le navigateur tente d'envoyer un message au serveur avec ajax:
url: 'http://www.example.com/addcomment',
method: post,
crossDomain: true,
data: message,
processData: false,
cache: false
Cependant, lorsque le serveur a essayé de self.get_secure_cookie("user")
, il obtient un None
, ce qui signifie que la demande n'envoie pas n'importe quel cookie au serveur.
ajouter également
xhrFields: {
withCredentials: true
},
au ajax mais cela ne fonctionne pas non plus.
Si ajax ne peut envoyer aucun cookie au serveur, comment puis-je utiliser les cookies sécurisés de Tornado?