2014-10-03 93 views
14

我想深入瞭解Angular,爲此我想知道Session Storage,Local Storage和Cookies之間的區別。AngularJS中會話存儲,本地存儲和Cookie之間的區別

問題問題---

1)$ windows.sessionStorage可以用來存儲用戶會話,但它存在的問題是,當你打開的東西在新標籤中再次要求用戶登錄。

2)本地存儲是問題1的解決方案嗎?如果是這樣,這是否意味着我需要本地存儲和會話存儲在我的應用程序或本地存儲中也將充當會話存儲。

3)我也在努力記住我我的登錄屏幕上 - 是它的安全存儲用戶的密碼和電子郵件在本地存儲對於這一點,如果沒有什麼是做記得我在角

最好的方法

4)餅乾很棒,但企業公司允許他們在那裏瀏覽器?

希望能找到像樣的答案

感謝

+0

如果回答以下問題,提出瞭解決您的問題,請點擊選中標記旁接受答案答案。這將有助於未來用戶搜索相同問題的答案。謝謝。 – SnareChops 2014-10-06 02:52:39

回答

23

1)這是正確的,sessionStorage是暫時的,它被設計這樣做。

2)本地存儲將解決登錄問題,即打開新的瀏覽器會話或等待很長時間後登錄消失,但不會,localStorage不會充當瀏覽器請求的會話cookie。

3)許多不同的服務器端應用程序支持應用程序的加密和防篡改cookie支持。也就是說,最好不要將用戶密碼存儲在客戶端,也許可能是服務器會識別並能夠解密/解碼並查找正確用戶記錄的令牌。

4)我會說現在是的,餅乾通常被認爲是安全的,但這總是一種可能性,並且取決於您的客戶或觀衆,您可能在那裏有問題。如果Cookie在瀏覽器中被禁用,會話也不會工作。 (雖然我的觀點是對一般人羣的猜測,例如:請不要在此引用我的意見)

我對您的需求的建議是在用戶遇到頁面時設置會話變量。然後將結果存儲在localStorage或cookie中,然後當用戶在會話終止後返回應用程序時,設置一些架構來重新進行身份驗證並自動重新分配會話。

希望這會有所幫助!

編輯:會話Cookie在同一個窗口內的瀏覽器標籤之間共享。然而會話存儲已被指出不是。

+2

在Angular中會話存儲 - 在新選項卡中打開時會丟失信息。除非我做錯了什麼。雖然很好的答案。謝謝 – GeekOnGadgets 2014-10-03 04:09:26

+0

這很奇怪。你正在使用哪種瀏覽器?或者你有沒有在所有瀏覽器中注意到這一點? – SnareChops 2014-10-03 04:13:29

+4

會話存儲的作用域是特定的選項卡/窗口,即使它們訪問相同的URI,它也不會在瀏覽器選項卡之間共享。如果您需要在兩個選項卡或窗口之間共享某些內容,則需要使用'localStorage'。請注意,同源規則仍適用。 – demisx 2014-10-03 05:07:11