2016-08-05 6 views
0

AngularJSに基づいて1つのアプリケーションを開発しており、これは1つのRESTfulサービスと対話します。 1つのトークンを返すサービスからの認証後。私はすべての要求にトークンと傍受を格納する必要があります。 rootScopeとsessionStorageのどちらのトークンを格納する方がよいでしょうか?AngularJSに認証トークン、rootScopeまたはsessionStorageを格納するのに安全なもの

+0

私はそれらのうちの1つが他よりも安全だとは思わない。 JSコンソールでrootscopeを印刷して、セッション中にすべての保存されたマテリアルを見ることができます。しかし、トークンがリフレッシュされるので、トークンを保存するためのsessionStorageを提案します。この人はlocalStorageにトークンを保存する方法を示しています:https://thinkster.io/angularjs-jwt-auth – McBoman

+0

アプリケーションが更新されると、トークンはもはや存在しないので、ストレージが優れています。クッキーもあります。 – Rob

答えて

0

を見てみましょう。したがって、あなたはcookieまたはsessionStorageを使用することをお勧めします。

ユーザーがブラウザのタブを閉じると、SessionStorageは消えます。そうでない場合は、クッキーを使用してください。あなたの$ HTTP要求にデフォルトのヘッダー認証を追加するには

はあなたがここにについてのドキュメントを見つけることができインターセプタを使用します。

Interceptor documentation

迎撃のためのコードのようなものになります。

$httpProvider.interceptors.push(function($q, $cookies) { 
    return { 
    'request': function(config) { 

      config.headers['Token'] = $cookies.loginTokenCookie; 
      return config; 
     } 
    }; 
    }); 

また、角度のある$ cookieサービスのドキュメントをご覧ください。

Cookie documentation

0

$ rootScopeとセッション記憶域は、2つの異なる役割用に設計されています。 $ rootScopeは、値をアプリケーション全体にアクセス可能にするJavaScript変数です。セッション記憶域は、ページの更新を超えて、またはセッションが他の方法で維持されている間もデータを保持できるWebブラウザ機能です。 $ rootScopeに値を格納することは、JavaScript変数に値を格納することに過ぎません。ページを更新すると値はなくなります。必要なのはセッション記憶域かクッキーなので、トークンはページの更新を超えて永続化されます。

は$ rootScopeは、ページの更新に消えてしまいます変数ですngStorage

関連する問題