2013-08-06 30 views
13

Tôi nhận được tên và id email của người dùng sau khi đăng nhập qua facebook vào trang web của tôi .. Tôi muốn thêm các biến đó trong phiên trên biểu mẫu đăng nhập bằng javascript; tôi đã cố gắng sau:Đặt biến phiên sử dụng javascript

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

nó mang lại cho lỗi như tôi (trong dòng này: <% Session [ "fbName"] = me.name;%>) không tồn tại trong bối cảnh hiện nay vv .. div của tôi "auth-DisplayName" là nhận được giá trị đó nhưng tôi đang gặp trục trặc với phiên biến

làm thế nào tôi có thể làm điều này

Trả lời

8

Một phiên được lưu trữ phía máy chủ, bạn không thể sửa đổi nó với JavaScript. Phiên có thể chứa dữ liệu nhạy cảm.

Bạn có thể sửa đổi cookie sử dụng document.cookie.

Bạn có thể dễ dàng tìm thấy nhiều ví dụ về cách sửa đổi cookie.

+0

Nhiều ngôn ngữ giữ các biến phiên ở phía máy khách, thông qua cookie. Ví dụ: –

+0

@bernando? – Yang

+1

@BernardoSiu thường khách hàng chỉ thấy cookie định danh phiên và thậm chí có thể bị ẩn khỏi JavaScript với _HttpOnly cookies_. Điều quan trọng là nhận ra sự khác biệt giữa phiên và cookie, chúng không giống nhau. – Halcyon

5

Bạn có thể sử dụng tốt hơn localStorage của trình duyệt web.

Bạn có thể tìm thấy một tài liệu tham khảo here

+0

Tại sao bỏ phiếu xuống? Bạn có thể giải thích? –

+0

Tôi đã không downvote, nhưng nó có thể là do localStorage và lưu trữ phiên là những điều khá khác nhau - NHƯNG, tùy thuộc vào nhu cầu, bạn nói đúng rằng nó * có thể * hữu ích để giải quyết vấn đề ban đầu của người hỏi câu hỏi ... bất kể đó là gì. – Katana314

+1

localStorage? sử dụng sessionStorage – User

28

Bạn có thể sử dụng

sessionStorage.SessionName = "SessionData",

sessionStorage.getItem("SessionName")

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

Xem các trình duyệt được hỗ trợ trên http://caniuse.com/namevalue-storage

Các vấn đề liên quan