web-dev-qa-db-ja.com

AngularJSのセッションストレージ、ローカルストレージ、Cookieの違い

Angularについて詳しく調べたいと思います。そのために、セッションストレージ、ローカルストレージ、Cookieの違いを知りたいのですが。

問題の質問---

1)$ windows.sessionStorageはユーザーセッションの保存に使用できますが、問題は、新しいタブで何かを開くと、ユーザーに再度ログインするよう要求することです。

2)ローカルストレージは問題1の解決策になりますか?もしそうなら、それは私のローカルストレージとセッションストレージの両方が必要であることを意味しますか、ローカルストレージはセッションストレージとしても機能します。

3)私もログインフォームで[Remember me]に取り組んでいます-ユーザーのパスワードと電子メールをローカルストレージに保存しても安全ですか?

4)Cookieは優れていますが、企業はブラウザで許可していますか?

きちんとした答えを見つけたい

ありがとう

14
GeekOnGadgets

1)sessionStorageは一時的なものであり、そのように設計されています。

2)ローカルストレージは、新しいブラウザーセッションが開かれたり、長時間待機した後にログインがなくなる問題を解決しますが、localStorageはブラウザーリクエストのセッションCookieとして機能しません。

3)多くの異なるサーバー側アプリケーションが、アプリケーションの暗号化と改ざん防止Cookieサポートをサポートしています。とは言っても、ユーザーパスワードをクライアントに保存しないことをお勧めします。おそらくサーバーがトークンを認識し、復号化/デコードして正しいユーザーレコードを検索できるトークンである可能性があります。

4)今日はそうだと思います。Cookieは一般に安全であると認められていますが、それは常に可能であり、クライアントやオーディエンスによっては問題が発生する可能性があります。また、ブラウザでCookieが無効になっている場合、セッションは機能しません。 (これについての私の見通しは一般的な人々に対する推測ですが、それについて私を引用しないでください)

あなたのニーズに対する私の推奨は、ユーザーがページに遭遇したときにセッション変数を設定することです。次に、結果をlocalStorageまたはcookieに保存し、セッションが終了した後にユーザーがアプリケーションに戻ったときに、セッションを自動的に再認証および再割り当てするようにいくつかのアーキテクチャを設定します。

お役に立てれば!

編集:セッションCookieは、同じウィンドウ内のブラウザタブ間で共有されます。ただしSession Storageはそうではないと指摘されています。

23
SnareChops

localstorageはタブ全体で機能します。

ここにデモがあります:

http://www.undefinednull.com/2014/02/25/angularjs-real-time-model-persistence-using-local-storage/

7
Paul B. Hartzog