如何维护登录表单的会话

时间:2016-11-20 22:04:37

标签: javascript angularjs session

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=="admin@admin.com" && password=="admin123")
        {

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

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

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


        };
});

以上是我的登录控制器。 我对angularjs很新。 我可以登录并登陆新页面 现在我需要为我的登录表单维护会话。 怎么做?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,即使关闭标签并稍后重新打开,您也需要保持身份验证。

简短回答: - 使用window.localStorage。在成功登录尝试时创建令牌,将其保存在localstorage中,并在每次加载页面时检查。

长 - 简答: - 这不涉及硬编码用户信用。查找无状态身份验证,如JWT或基于Cookie的解决方案。这些invovle服务器端令牌/ cookie被创建,通过您的REST服务头传递并保存在浏览器的本地存储中。我个人喜欢JWT,因为它的开销较小。

希望有所帮助!

编辑: - 稍微更新一段代码。可能有拼写错误。尝试使用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=="admin@admin.com" && $scope.password=="admin123"){
          window.localStorage.setItem('authToken', 'success');       
          window.location = '/PricePredictionUI/#/DASHBOARD';

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