2014-10-03 25 views
14

Tôi muốn tìm hiểu về Góc, và tôi muốn biết sự khác biệt giữa Bộ nhớ phiên, Bộ nhớ cục bộ và Cookie.Sự khác biệt giữa Bộ nhớ phiên, Bộ nhớ cục bộ và Cookie trong AngularJS

Câu hỏi Vấn đề ---

1) $ windows.sessionStorage có thể được sử dụng để lưu trữ phiên sử dụng nhưng vấn đề với nó là, khi bạn mở một cái gì đó trong một tab mới nó một lần nữa yêu cầu người dùng đăng nhập.

2) Bộ nhớ cục bộ có phải là giải pháp cho câu hỏi có vấn đề 1 không? và nếu có, điều đó có nghĩa là tôi cần lưu trữ cục bộ và lưu trữ phiên trong cả ứng dụng hoặc bộ nhớ cục bộ của mình cũng sẽ hoạt động như bộ nhớ phiên.

3) Tôi cũng đang làm việc trên Ghi nhớ tôi trên biểu mẫu đăng nhập của tôi - an toàn để lưu trữ mật khẩu và email của người dùng trong bộ nhớ cục bộ cho điều này, nếu không phải là cách tốt nhất để nhớ tôi trong góc

4) Cookie rất tuyệt, nhưng các công ty của công ty có cho phép chúng trên trình duyệt không?

Hy vọng để tìm câu trả lời đàng hoàng

Cảm ơn

+0

Nếu câu trả lời dưới đây trình bày một giải pháp cho câu hỏi của bạn, xin vui lòng chấp nhận câu trả lời bằng cách nhấp vào dấu kiểm bên cạnh câu trả lời.Điều này sẽ giúp người dùng trong tương lai tìm kiếm câu trả lời cho cùng một câu hỏi. Cảm ơn bạn. – SnareChops

Trả lời

23

1) Đúng là sessionStorage là tạm thời, và nó đã được thiết kế để làm như vậy.

2) Bộ nhớ cục bộ sẽ giải quyết vấn đề đăng nhập bằng một phiên trình duyệt mới được mở hoặc sau một thời gian dài, nhưng không, localStorage sẽ không hoạt động như cookie phiên cho các yêu cầu của trình duyệt.

3) Nhiều ứng dụng phía máy chủ khác nhau hỗ trợ mã hóa và hỗ trợ cookie chống giả mạo cho các ứng dụng. Điều đó đang được nói, nó luôn luôn là tốt nhất không để lưu trữ mật khẩu người dùng trong khách hàng, có lẽ một mã thông báo có lẽ rằng máy chủ của bạn sẽ nhận ra và có thể giải mã/giải mã và tìm kiếm hồ sơ người dùng chính xác.

4) Tôi sẽ nói ngày nay có, cookie thường được chấp nhận là an toàn, tuy nhiên đó luôn là khả năng và tùy thuộc vào khách hàng hoặc đối tượng bạn có thể gặp sự cố ở đó. Ngoài ra, các phiên sẽ không hoạt động nếu cookie bị tắt trong trình duyệt. (Mặc dù viễn cảnh của tôi về điều này là suy đoán về dân số chung, ví dụ: không báo cho tôi về điều đó)

Đề xuất của tôi cho nhu cầu của bạn là đặt biến phiên khi người dùng gặp trang. Sau đó lưu trữ kết quả trong localStorage hoặc với một cookie, và sau đó khi người dùng quay trở lại ứng dụng sau khi phiên làm việc đã chết, hãy thiết lập một số kiến ​​trúc để xác thực lại và gán lại phiên một cách tự động.

Hy vọng điều này sẽ hữu ích!

Chỉnh sửa:Cookie phiên được chia sẻ giữa các tab trình duyệt trong cùng một cửa sổ. Tuy nhiên Bộ nhớ phiên đã được chỉ ra là không.

+2

Trong Angular phiên lưu trữ-mất thông tin khi mở trong tab mới.Không có bất cứ điều gì tôi đang làm sai. Câu trả lời hay. Cảm ơn – GeekOnGadgets

+0

Điều đó thật kỳ quặc. Trình duyệt mà bạn đang sử dụng? hoặc bạn có nhận thấy điều này trong tất cả các trình duyệt không? – SnareChops

+4

Bộ nhớ phiên được sắp xếp theo một tab/cửa sổ cụ thể và không được chia sẻ giữa các tab trình duyệt ngay cả khi chúng truy cập cùng một URI. Nếu bạn cần chia sẻ thứ gì đó giữa hai tab hoặc cửa sổ, bạn cần sử dụng 'localStorage'. Lưu ý, các quy tắc gốc vẫn áp dụng. – demisx

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