comment savoir si quelqu'un est connecté via javascript?
en php je ne
if (isset($_COOKIE['user']) && $_COOKIE['user'] == $valueFromDb)
echo 'logged';
Mais en javascript comment puis-je le vérifier?
Grâce
OriginalL'auteur | 2011-03-27
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen fiable de le faire sans faire une demande au serveur, depuis la session peut avoir expiré sur le côté serveur. Dans un projet, je le fais à la suite, de manière imparfaite:
Je dis imparfait, car il fait synchrone demande qui a temporairement bloqué le navigateur. Il a un avantage, c'est que
checkAuth()
fiable peut être appelé de n'importe quelle partie de l'application côté client, car il force le navigateur à attendre le résultat avant de continuer l'exécution du code JS, mais c'est tout.L'alternative, asynchrone (sans verrouillage) approche serait de faire quelque chose comme ceci:
Le premier exemple fait une demande de
/user/isLogged/
qui vérifie simplement si l'utilisateur est connecté (via$_SESSION
) et envoie en retour un "1" ou un "0". Leasync: false
option force le navigateur à attendre la demande, de sorte que la fonction retournera toujours un résultat booléen. Le deuxième exemple implique que tout ce qui doit arriver, c'est fait à l'intérieur de lasuccess
de rappel, ce qui nécessite une architecture différente, mais élimine également la nécessité pour un synchrone demande. Voir api.jquery.com/jQuery.ajaxSi j'ai mis le premier exemple en $.prêt pourquoi je devrais utiliser le deuxième exemple?
Comment fonctionne-t-il le backend côté? Comment retourner true ou false en php donc JQ sera en mesure de le lire? Désolé pour cette extrem-question de noob...
OriginalL'auteur karim79
Lorsque vous voulez savoir si l'utilisateur est connecté sur une page pour faire un peu de type de l'action spéciale, j'ai l'habitude d'utiliser un caché d'entrée avec un nom spécial qui est vérifié sur js. Si l'utilisateur est connecté, vous mettez ça sur une page maître ou quelque chose comme ça et puis en js vérifier s'il existe pour savoir si l'utilisateur est connecté.
Quelque chose comme:
OriginalL'auteur Arturo Igualada
Vous mélangez traitement côté serveur (php) avec traitement côté client (javascript). Du côté client, cette information n'existe pas, sauf si le serveur est dans un cadre de travail spécifique.
Eh bien, tel qu'il est libellé, la question semble traiter de manière identique, et ne permet pas d'expliquer ce que vous faites assez de détails pour voir autre chose.
OriginalL'auteur bmargulies
Oui.
découvrez cette question: Créer, lire et effacer les cookies avec jQuery
un plugin pour le rendre encore plus facile pour vous: http://plugins.jquery.com/project/cookie
Rappelez-vous que cela ne fonctionne pas avec des cookies HttpOnly (qui sont recommandés pour l'auth/données de session).
OriginalL'auteur Mohammed Swillam