2016-12-24 6 views
-1

私は、サーバーへのすべてのAPIコールを認証するためにjwtを使用している角型アプリケーションを作成しました。クライアント側では、一度ユーザーがログインすると、localInstanceでloggedInをtrueに設定しています。次に、localStorageのloggedInがtrueであるかどうかを調べる、ui router stateChangeStartイベントでAuthServiceを使用しています。localStorageを使用したAngularJS認証

私はlocalStorageにユーザ名を保存し、後でユーザ名が設定されているかどうかをチェックして、ユーザが認証されているかどうかを調べる多くの例を見てきました。しかし、私の質問は、localStorageを調整することができ、誰かが何かにusernameプロパティを設定したり、loggedInをtrueに設定することができます。

これについてあなたの考えはどんなものか、私には分かりません。

+0

あなたのコードを共有できますか? – Codesingh

答えて

0

私はそれは、ただのlocalStorageにトークンを保存したり、より良い

if (response.data.token) // response for successful login 
    { 
    let headers = { 
     ContentType : 'application/json', 
     access-token : response.data.token, 
     anyOtherHeader: 'xxx' 
    } 

    window.localStorage.setItem('headers',JSON.stringify(headers)); 
    } 

を次のようにヘッダJSONを保存し、アプリケーションの負荷は、それが存在する場合、それは維持しなければいつでもこれだけのためにチェックされるやり方それ$ rootScope

let headers = window.localStorage.getItem('headers'); 
if(headers){ 
    $rootScope.headers = JSON.parse(headers); 
    $timeout(function(){$scope.$apply()}) //to update your app about token 
} 

とあなたのトークンが/認証されていない時はいつでも確認されていない/だけのlocalStorageと$ rootScopeから

window.localStorage.removeItem('headers') 
$rootScope.headers = undefined; 
$timeout(function(){$scope.$apply()}); //again to update your app about it 
それを削除ログアウト中

適切なエラー処理を行うと、それは私のためにうまくいく。一緒に焼くことはできますが、誤用することはできません。これが役に立ったら教えてください:)

関連する問題