2013-07-06 4 views
13

QUICK背景:は、私は、ユーザー認証セッション情報を格納するためにHTML5のローカルストレージを使用することはでき

私は角モンゴ/エクスプレス/ /ノードSPAを書いて、私はユーザー認証を処理するためのオプションでセットアップOAuthのログを持っているパスポートを使用しています/承認。

パスポートで私は正常にサーバー上でセッションを維持しているので、すべてのXHRリクエスト(必要なもの)はログインしているユーザーをチェックしています。

ログオンすると、サーバは基本的なユーザセッション情報をクライアントが認可コールバックで見つけ出すためのクッキーに置きます。次に、角度クッキーの$ CookieStoreを使用してクライアントのクッキーにアクセスし、それをrootscopeに保存しますクッキーをクリアします。

問題:これは、ユーザーが明らかに拭い得るために、私rootscopeセッションが発生し、ブラウザをリフレッシュするすべてのイベントを除いて完全に取り組んでいる

私はブラウザのローカルストレージ(store.jsを使用)にセッション情報を保存することを検討していましたが、初期ロード時でもブラウザのローカルストレージに存在するセッションを確認し、OAuthログインをバイパスしました。セッション。

ユーザーのセッション情報をブラウザのローカルストレージに保存することは悪いことですか、いくつかのロジスティクス/セキュリティの問題がありますか?

このアプリにはセンシティブデータはありません。サインアップは無料でログインするだけで、ユーザーを追跡し、アプリケーションで作成したデータを各ユーザーに保存できます。また、ユーザーセッションでパスワードを使用することはできません(OAuthログインにはローカルオプションは使用できません)。代わりにlocalStorage

+0

が異なります。サイトに有効なログインを作成するためにローカルストレージを変更できないようにしてください。それは厄介であろう。 –

+0

私はセッションIDだけを保存し、私はおそらくクッキーに保存するでしょう。 –

+0

@ MarkusMikkolainen localstorageのオブジェクトを変更して変更することができるため、クッキーはより良いオプションですか? –

答えて

6

sessionStorageオブジェクトを見て:http://www.w3schools.com/html/html5_webstorage.asp

それはまさにlocalStorageように動作しますが、全体sessionStorageオブジェクトは、ブラウザウィンドウを閉じたときに削除されます - しかし、任意のページの更新を存続します。セッションIDなどを保存するのに理想的な場所です。

しかしsessionStorageは、ブラウザのタブの中に隔離されていることを警告する - あなたのユーザーが新しいタブでリンクを開くことがchosesがあれば、そのためのsessionStorageが空に初期化されることを意味しています。

+5

自動ログインはどうですか?または永続的なログインですか? – CMCDragonkai

関連する問題