Comment puis-je vérifier pour voir si l'utilisateur est anonyme ou connecté à partir de javascript?
Je tiens à déterminer si oui ou non l'utilisateur est connecté ou si ils sont juste anonyme à partir de javascript...
J'ai trouvé cette question, mais c'est du code php et je n'étais pas sûr si il y a une variable de session appelé logged_in qui est mémorisé lors de la connexion ou si c'était juste quelque chose que personne n'avait mis en œuvre lui-même.
Quelqu'un sait comment je peux vérifier pour voir si l'utilisateur est connecté à partir de javascript, éventuellement à l'aide d'ajax?
Edit: je suis en cours d'exécution Asp.Net MVC, désolé devrait avoir spécifié
C'est pour que je puisse mettre en œuvre un ajax côté client de la connexion. Lorsque le chargement de la page, j'ai besoin de savoir si l'utilisateur est connecté ou pas si je peux mettre en œuvre quelque chose de semblable à un <asp:LoggedInView>
de contrôle à l'aide de jquery.
Merci,
Matt
J'ai édité ma réponse accordly de vos modifications.
OriginalL'auteur Matt | 2009-07-31
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas lire de la session de données enregistrées à partir de JavaScript.
Un moyen facile de le faire est de créer un JS var à partir de PHP (plus facile que les témoins de la solution), comme ceci:
Puis la JS sera simplement de vérifier le natif
logged_in
var pour voir si l'utilisateur est connecté.absolument dangereux. Meilleure façon : case à côté serveur avec http requête ajax lors de l'action de besoin (proabably dans votre fonction javascript)
une grande réponse pour les débutants! vraiment
OriginalL'auteur Makram Saleh
[AVERTISSEMENT] Depuis que j'ai été faire beaucoup de commentaires de gens à propos de ces "mauvaises pratiques", je vais juste dire ceci: C'EST une mauvaise pratique de le faire de cette façon, mais nous ne savons pas ce que l'affiche originale est l'intention de le faire. Pour tout ce que nous savons, il a tout fait bien 100% correcte et sûre, et demandais juste si il y avait un moyen d'obtenir à partir de javascript. Ce que j'ai fait ci-dessous est fourni à mon meilleur idée pour accomplir ce qu'il a demandé. [/AVERTISSEMENT]
Vous pouvez avoir votre php, ou que ce soit backend de la langue que vous utilisez, de définir un cookie que vous pouvez ensuite lire avec javascript.
simple que cela. Vous aurez à chercher le cookie chaîne de caractères pour le nom de votre enregistrés dans le cookie.
Vous pouvez également l'utiliser pour définir un cookie et de faire de votre connexion via javascript (mais probablement pas la meilleure idée).
Voir ici pour un aperçu rapide de javascript témoin d'accès.
[modifier]
D'aborder la question d'un script client d'avoir accès à des informations de session, et la possible utilisation d'ajax suggéré dans la question d'origine:
Oui, un appel ajax serait un moyen très facile de vérifier cela. Je suis de plus en plus de jQuery gars, mon ajax expérience est là, mais, fondamentalement, vous devriez faire un appel ajax à votre backend de la fonction, et que backend fonction vérifie juste la 'loggedin' variable de session, en retournant une valeur vrai ou faux.
Aussi, puisque vous avez maintenant de mentionner que vous êtes à l'aide de jQuery, voir cette page pour facile jQuery cookie d'accès.
[/edit]
Vous avez raison, script client NE savez PAS à propos de la session de choses, mais l'affiche originale de la question demande comment accéder à l'information à partir de javascript, à la condition de répondre prend soin de cela.
Ok, mais il reste mauvais, si vous utilisez cookieless l'authentification, la seule façon est de voir si l'url a quelque chose en elle. Et si quelqu'un utiliser un mode d'authentification (par exemple en passant sessionID dans un champ caché) ni de cette manière une bonne façon de traiter de. La bonne chose à faire est de charger 2 changer le script, l'un pour l'accès anonyme et l'un pour l'utilisateur authentifié.stop. btw, si le script afficher/cacher des choses importantes pour d'évidentes raisons de sécurité (et de la performance) la partie doit être généré côté serveur.
Kent, la question initiale était de ne pas demander si le javascript était la voie à suivre lors de la vérification pour un utilisateur de connexion, ni de se demander comment gérer la sécurité ou de tout cela. Peut-être qu'il a une très bonne raison de vouloir accéder à ces informations à partir de javascript. J'ai juste fourni une réponse à la question qu'il a posée.
Ce n'est certainement pas la voie à suivre. Si vous utiliser un Cookie pour savoir si l'utilisateur est connecté ou non, vous ouvrez-vous à de très facile d'attaques d'un hacker. Il est extrêmement trivial pour l'utilisateur de modifier leur cookie de sorte qu'il semble que vous êtes connecté. S'il vous plaît ne pas le faire.
OriginalL'auteur idrumgood
C'est une solution généralement mis en œuvre avec des langages côté serveur. Avec JS, vous, au moins,
met de son client un cookie où stocker de l'information.
Toutefois avec l'Ajax, vous devriez avoir une page (par exemple, check_login.jsp/.apsx etc.) lorsque pour vérifier
si l'utilisateur est connecté, l'accès à un DB, une variable de Session, etc.) et si oui, de retour à JS (via JSON) que l'information et, par exemple, à la lumière d'un DIV avec une couleur verte...
Donc:
check_login.aspx
--> retour à l'info viaResponse.Write("{user_logged:true}");
de
login.aspx
dans votre code HTML avec JS, vous aurez un appel AJAX où votrexmlhttp
est déjà une instance deXMLHttpRequest
objet...OriginalL'auteur xdevel2000
Il n'a pas de sens.
Si un utilisateur est connecté, vous le savez côté serveur.
Si vous n'avez pas à vérifier si vous êtes connecté côté client.
--EDIT :
Après vos éclaircissements, je ne peux que suggérer à vérifier sur le contrôleur si l'Utilisateur est connecté, si donc vous montrer la vue normale, sinon vous aurez à montrer un point de Vue différent.
-- EDIT ajouté Aphorisme:
Certaines personnes, lorsqu'ils sont confrontés à un problème, penser “je sais, je vais utiliser de l'ajax.” Maintenant, ils ont au moins deux problèmes
OriginalL'auteur kentaromiura
Meilleure Façon à mon avis est de le faire via ajax.
Cela va faire il.
Fichier JS...
check.php
OriginalL'auteur Eddsters
Vous pouvez analyser le document.cookie.
OriginalL'auteur Alsciende
Vous pouvez vérifier avec le code ci-dessous:
OriginalL'auteur Ajay Malhotra