2016-11-20 12 views
0
app.controller('loginController',function($scope,$http, $window){ 
// console.log(1); 
    $scope.adminLogin = function() { 
     alert("aaaaaa"); 
     var username=$scope.username; 
     var password=$scope.password; 
     if(username=="[email protected]" && password=="admin123") 
     { 

      window.location = '/PricePredictionUI/#/DASHBOARD'; 

     } 
     else 
     { 
      $scope.message="Error"; 
      $scope.messagecolor="alert alert-danger"; 
     } 

     //window.location = '/PricePredictionUI/#/DASHBOARD'; 


     }; 
}); 

上記は私のログインコントローラです。 私はangularjsでかなり新しいです。 私は新しいページにログインして着陸することができます 私はログインフォームのセッションを維持する必要があります。 どうすればいいですか?ログインフォームのセッションを維持する方法

+0

どのセッション?あなたがハードコーディングされた名前とpassowrdを使用しているのであれば、認証を行うための唯一の安全な方法であるサーバーとセッション状態が存在する場所 – charlietfl

答えて

1

私が正しく理解していれば、タブを閉じて後で再度開いても認証が必要です。

短い回答: - window.localStorageを使用してください。成功したログイン試行でトークンを作成し、localstorageに保存し、ページが読み込まれるたびにチェックします。

ロングショートアンサー: - これは、ユーザーのクレジットをハードコーディングすることを含みません。 JWTやCookieベースのソリューションのようなステートレス認証のルックアップ。これらはサーバサイドトークン/クッキーが作成され、RESTサービスヘッダーを通過してブラウザのローカルストレージに保持されます。私は個人的にJWTが好きです。オーバーヘッドが少ないからです。

希望に役立ちます!

編集: - そのコードを少し更新する。タイプミスの可能性があります。 Windowsリダイレクトの代わりにUI-Routerを使用してみてください。

app.controller('loginController',['$scope','$http', function($scope,$http){ 
    //Check if localStorage contains authToken 
    (window.localStorage.getItem('authToken') == 'success')? 'redirect - to - your page ' : 'Go - to - login'; 
    $scope.adminLogin = function() { 
     if($scope.username=="[email protected]" && $scope.password=="admin123"){ 
      window.localStorage.setItem('authToken', 'success');  
      window.location = '/PricePredictionUI/#/DASHBOARD'; 

     }else{ 
      $scope.message="Error"; 
      $scope.messagecolor="alert alert-danger"; 
     }  
    }; 
}]); 
関連する問題