2013-08-06 17 views
13

Ricevo nome e ID e-mail di un utente dopo aver effettuato l'accesso tramite Facebook al mio sito Web. Desidero aggiungere tali variabili in sessione al modulo di accesso stesso utilizzando javascript; Ho provato seguente:Impostazione variabile di sessione utilizzando javascript

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

dà errore come me (in questa linea: <% Session [ "fbName"] = me.name;%>) non esiste nel contesto corrente, ecc .. il mio div "auth-displayname" sta diventando quel valore, ma sto avendo problemi con la variabile di sessione

Come posso fare questo

risposta

8

Una sessione è memorizzato lato server di , non è possibile modificare con JavaScript. Le sessioni possono contenere dati sensibili.

È possibile modificare i cookie utilizzando document.cookie.

È possibile trovare facilmente molti esempi su come modificare i cookie.

+0

Molte lingue mantengono le variabili di sessione sul lato client, tramite i cookie. –

+0

@bernando per esempio? – Yang

+1

@BernardoSiu in genere il client vede solo un cookie identificativo di sessione, e anche quello può essere nascosto da JavaScript con _HttpOnly cookies_. È importante rendersi conto della differenza tra sessioni e cookie, non sono la stessa cosa. – Halcyon

5

È possibile utilizzare meglio lo localStorage del browser web.

È possibile trovare un riferimento here

+0

Perché il voto scende? Potresti spiegare per favore? –

+0

Non ho fatto downvoting, ma potrebbe essere dovuto al fatto che localStorage e lo storage di sessione sono cose abbastanza diverse - MA, a seconda delle necessità, hai ragione che * potrebbe * essere utile per risolvere il problema originale del richiedente-problema ... qualunque cosa sia. – Katana314

+1

localStorage? usa sessionStorage – User

28

È possibile utilizzare

sessionStorage.SessionName = "SessionData",

sessionStorage.getItem("SessionName") e

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

Vedi le browser supportati su http://caniuse.com/namevalue-storage