web-dev-qa-db-fra.com

Définition d'une variable de session à l'aide de javascript

Je reçois le nom et l'identifiant de messagerie d'un utilisateur après sa connexion via facebook à mon site Web ... Je souhaite ajouter ces variables à la session sur le formulaire de connexion lui-même à l'aide de javascript; J'ai essayé de suivre:

FB.api('/me', function(me) {
        if (me.name) {
            document.getElementById('auth-displayname').innerHTML = me.name; <% Session["fbName"] = me.name; %>
        }
}

cela donne une erreur comme moi (dans cette ligne: <% Session ["fbName"] = me.name;%>) n'existe pas dans le contexte actuel, etc. mon div "auth-displayname" obtient cette valeur mais je m avoir un problème avec la variable de session

Comment puis-je faire ceci

20
Sam

Vous pouvez utiliser

sessionStorage.SessionName = "SessionData",

sessionStorage.getItem("SessionName") et

sessionStorage.setItem("SessionName","SessionData");

Voir les navigateurs pris en charge sur http://caniuse.com/namevalue-storage

33
User

Une session est stockée côté serveur , vous ne pouvez pas la modifier avec JavaScript. Les sessions peuvent contenir des données sensibles.

Vous pouvez modifier cookies en utilisant document.cookie.

Vous pouvez facilement trouver de nombreux exemples sur la modification des cookies.

10
Halcyon

Vous pouvez mieux utiliser le localStorage du navigateur Web.

Vous pouvez trouver une référence ici

6
Thanassis_K

Il est très important de comprendre sessionStorage et localStorage car ils ont tous deux des utilisations différentes:

De MDN :

Toutes vos données de stockage Web sont contenues dans deux structures de type objet dans le navigateur: sessionStorage et localStorage. Le premier persiste les données aussi longtemps que le navigateur est ouvert (les données sont perdues lorsque le navigateur est fermé ) et la seconde persiste, même après que le navigateur est devenu fermé puis rouvert.

sessionStorage - Enregistre les données jusqu'à la fermeture du navigateur. Les données sont supprimées à la fermeture de l'onglet/du navigateur.

localStorage - Enregistre les données "pour toujours" même après la fermeture du navigateur MAIS vous ne devez pas compter sur les données que vous stockez plus tard, elles pourraient être supprimées par le navigateur à tout moment En raison de pratiquement tout ce qui a été supprimé, ou supprimé par l'utilisateur, la meilleure pratique serait de valider que les données sont là en premier et de continuer le reste si elles sont là. (ou remettez-le en place s'il n'est pas là)

Pour en savoir plus, lisez ici: localStorage | sessionStorage

0
Art3mix