2016-11-20 105 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。在成功登錄嘗試時創建令牌,將其保存在本地存儲中,並在每次加載頁面時檢查。

長 - 簡答: - 這不涉及硬編碼的用戶信用。查找無狀態認證,如JWT或基於Cookie的解決方案。這些invocation服務器端token/cookie被創建,通過REST服務頭傳遞並保存在瀏覽器的本地存儲中。我個人喜歡智威湯遜,因爲它的開銷較小。

希望有幫助!

編輯: - 更新那段代碼。可能有錯別字。嘗試使用UI-Router而不是Windows重定向。

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"; 
     }  
    }; 
}]);