如何在角度js的cookie中存储登录会话ID?

时间:2015-05-18 03:27:58

标签: javascript angularjs session cookies

我有以下代码,我将用户的登录凭据及其权限(无论他是否是管理员)存储在本地存储中。

.success(function (user) {
            localStorageService.set('localStorageUser', user.username);
            localStorageService.set('localStorageUserRole', user.authorities[0].authority);

            $rootScope.showMenu = true;
            $rootScope.user = user.username;

             if(localStorageService.get('localStorageUserRole') === 'ROLE_ADMIN'){
                 $rootScope.isAdmin = true;                  
             }
             else {
                 $rootScope.isAdmin = false;                     
             }                

            d.resolve();
        })

我想知道如何在cookie中存储用户登录会话ID,并在AngularJS中设置cookie的到期日期。

1 个答案:

答案 0 :(得分:6)

AngularJS已经提供了一个使用cookie的包装器。

您可以访问此页面以了解如何将ngCookies插件添加到您的项目中:https://docs.angularjs.org/api/ngCookies

  

首先在HTML中包含angular-cookies.js:

     

你可以   从以下位置下载此文件:

     

Google CDN,例如

     

// ajax.googleapis.com/ajax/libs/angularjs/X.Y.Z/angular-cookies.js

     

然后通过将模块添加为依赖项来加载应用程序中的模块   模块:

     

angular.module('app',['ngCookies']);

     

随着你准备好了   开始!

使用$ cookie非常简单:

$cookies.put('user', user.username);
var username = $cookies.get('user');

//You can set the expired time with the third params
var today = new Date();
var expired = new Date(today);
expired.setDate(today.getDate() + 1); //Set expired date to tomorrow
$cookies.put('user', user.username, {expires : expired });

有关$ cookies的更多信息:https://docs.angularjs.org/api/ngCookies/service/$cookies