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

Manage session and cookies in user login using angular.js

本文关键字:会话 cookie 登录 angular js 管理 用户 使用      更新时间:2023-09-26

我有一个登录应用程序,这里我需要使用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)存储,在时间到期后,它将自动注销并发出一条警告消息。

使用angularjs for cookie所需的模块下载并添加到项目中,该模块是ngCookie,在这里有一个例子,但你也可以使用基本的javascript来获取和设置cookie。

下面是setCookie函数,它获得cookie name, cookie value和过期cookie的天数。可以在用户登录时设置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');
}]);