使用angular.js管理用户登录中的会话和cookie

时间:2015-10-07 04:04:42

标签: javascript angularjs session cookies

我有一个登录应用程序,在这里我需要使用angular.js使用会话和cookie。我正在解释下面的代码。

  

loginController.js:

var loginAdmin=angular.module('Channabasavashwara');
loginAdmin.controller('loginController',function($scope,$http,$location){
    $scope.user_name = ''; 
    $scope.user_pass = '';
    $scope.user_login=function(){
    if($scope.user_name==''){
        alert('user name filed should not keep blank');
    }else if($scope.user_pass==''){
        alert('password filed should not keep blank');
    }else{
        var userData={'user_name':$scope.user_name,'user_pass':$scope.user_pass};
        console.log('user',userData);
        $http({
            method: 'POST',
            url: "php/Login/login.php",
            data: userData,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).then(function successCallback(response){
            console.log('response',response);
            alert(response.data['msg']);
            $location.path('dashboard');
        },function errorCallback(response) {
            alert(response.data['msg']);
        });
    }
    }
});

这里我的要求是当用户成功登录时,会话将存储,并且在注销时它将移动。类似地,cookie将存储一些到期时间(lets say 10 min),在时间到期后它将退出自动发送一条警报信息。请帮帮我。

1 个答案:

答案 0 :(得分:0)

使用angularjs for cookie required模块下载并添加到ngCookie的项目中,并在here添加示例,但您也可以使用基本的javascript获取和设置cookie。

以下是setCookie函数,该函数获取cookie namecookie value以及Cookie过期天数。您可以在用户登录时设置Cookie ,并在注销时删除

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

angularjs cookie的示例

 angular.module('cookiesExample', ['ngCookies'])
.controller('ExampleController', ['$cookies', function($cookies) {
  // Retrieving a cookie
  var favoriteCookie = $cookies.get('myFavorite');
  // Setting a cookie
  $cookies.put('myFavorite', 'oatmeal');
}]);