angular中的$cookies和$cookieStore设置过期时间
angular1.4及以上版本才支持$cookies。
项目引入的是1.4.2版本,操作cookies原先一直用的是$cookieStore,用的飞起啊。
$cookieStore.remove("user");
//检测是否存在cookie user
$scope.pass = $cookieStore.get("pass");
//记录登录时间
$scope.loginTime = new Date().getTime();
$cookieStore.put("loginTime", $scope.loginTime);
var cookieDate = {};
cookieDate.sid = data.con.sid;
cookieDate.uid = data.con.uid;
cookieDate.tid = data.con.tid;
cookieDate.token = data.con.token;
cookieDate.email = data.con.email;
$cookieStore.put("user", cookieDate);
if ($scope.isRemember) {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + 30);//设置cookie保存30天
$cookieStore.put("pass", {'email':$scope.email, 'password':$scope.password}, {'expires': expireDate});
} else {
$cookieStore.remove("pass");
}
后来发现了一个严重的问题。在群里发现有人问问题,用的1.2版本的angular-cookie,$cookieStore设置保存时间没用。我一想,这怎么可能,嗤之以鼻。后来那人多次询问,我就把我的代码贴给他看了。也没什么,我就闭群看文章了。中途打野,想试试cookie怎么弄,毕竟自己也没弄多大明白,就换了个不常用的浏览器试了试。握草,cookie的设置根本没用啊!!于是查阅了些资料,好像cookieStore不支持保存的时间期限。
$cookies.putObject(key,value,[options]);
$cookieStore.put(key,value);
这就是差别!于是瞬间全部换成$cookies写法。而且人老外也说了,以后会逐步摒弃$cookieStore,而更多使用$cookies。

$cookies.remove("user");
//检测是否存在cookie user
$scope.pass = $cookies.getObject("pass");
//记录登录时间
$scope.loginTime = new Date().getTime();
$cookies.put("loginTime", $scope.loginTime);
var cookieDate = {};
cookieDate.sid = data.con.sid;
cookieDate.uid = data.con.uid;
cookieDate.tid = data.con.tid;
cookieDate.token = data.con.token;
cookieDate.email = data.con.email;
$cookies.putObject("user", cookieDate);
if ($scope.isRemember) {
var expireDate = new Date();
expireDate.setDate(expireDate.getDate() + 30);//设置cookie保存30天
$cookies.putObject("pass", {'email': $scope.email, 'password': $scope.password}, {'expires': expireDate});
} else {
$cookies.remove("pass");
}
在其他控制器获取cookie内容也很简单:
$scope.ID = $cookies.getObject("user").email;
$scope.sid = $cookies.getObject("user").sid;
$scope.uid = $cookies.getObject("user").uid;
$scope.token = $cookies.getObject("user").token;
另外有的浏览器有自动填充账号密码功能(导致我以为我的cookie设置好了),可以在设置里面查看cookie是否保存成功。

angular中的$cookies和$cookieStore设置过期时间的更多相关文章
- angular中的cookies与cookieStore区别
设置cookie用put()方法: $cookies.put(key, value[, options]); $cookieStore.put(key, value); 例如设置一个cookie,名为 ...
- 如何为Redis中list中的项设置过期时间
问题 两种解决方法 有序集合 多个集合以及TTL Redis是一个伟大的工具,用来在内存中存储列表是很合适的. 不过,如果你想要快速搜索列表,同时需要让列表中每项都在一定时间后过期,应该怎么做呢? 首 ...
- redis中的key设置过期时间
EXPIRE key seconds 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除. 在 Redis 中,带有生存时间的 key 被称为『易失的 ...
- 查询redis中没有设置过期时间的key
#!/bin/sh ## 该脚本用来查询redis集群中,哪些key是没有设置过期时间,对应只需要修改redis的其中一个实例的 host和port ## 脚本会自动识别出该集群的所有实例,并查出对应 ...
- python中使用redis模块, 设置过期时间
# 链接数据库self.handle = redis.Redis(host=host, port=port, db=db, password=password, decode_responses=Tr ...
- redis 一二事 - 设置过期时间,以文件夹形式展示key显示缓存数据
在使用redis时,有时回存在大量数据的时候,而且分类相同,ID相同 可以使用hset来设置,这样有一个大类和一个小分类和一个value组成 但是hset不能设置过期时间 过期时间只能在set上设置 ...
- java操作Redis缓存设置过期时间
关于Redis的概念和应用本文就不再详解了,说一下怎么在java应用中设置过期时间. 在应用中我们会需要使用redis设置过期时间,比如单点登录中我们需要随机生成一个token作为key,将用户的信息 ...
- redis批量设置过期时间
Redis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作.代码如下: redis-cli keys &qu ...
- redis文档翻译_key设置过期时间
Available since 1.0.0. 使用開始版本号1.01 Time complexity: O(1) 时间复杂度O(1) 出处:http://blog.csdn.net/colum ...
随机推荐
- Linux Samba配置文件常用参数详解
目录 1.全局参数 2.共享参数 Samba的主配置文件叫smb.conf,默认在/etc/samba/目录下. smb.conf含有多个段,每个段由段名开始,直到下个段名.每个段名放在方括号中间 ...
- OSG3.0.1的编译
在OSG-中国有很多关于OSG的资料,包括OSG的编译和教程. 要编译OSG首先需要准备的包: 1,OSG3.0.1源代码: 2,CMAKE: 3,OSG用到的第三方库: 4,OSG Data:OSG ...
- 原生ajax和jsonp
封装方法: function ajax(options) { options = options || {}; options.type = (options.type || "GET&qu ...
- July 27th 2017 Week 30th Thursday
A smile is the most charming part of a person forever. 微笑永远是一个人身上最好看的东西. Smile in the mirror, and yo ...
- D3——Updates, Transitions, and Motion
<script type="text/javascript"> ; ; ; , , , , , , , , , ,, , , , , , , , , ]; //crea ...
- 【[SCOI2016]背单词】
这是一道贪心题 刚开始yy出来一个比较\(sb\)的贪心 之后发现它错了 首先这道题得先把题面翻译成人话 如果存在一个单词是它的后缀,且当前没被填入,代价为\(n*n\): 如果不存在一个单词是它的后 ...
- 【[NOI2018]屠龙勇士】
发现好像都是化掉系数之后套上\(ExCrt\)的板子 这好像是一个真正的扩展扩展中国剩余定理 我们要处理的方程是这样的形式 \[c_ix\equiv b_i(mod\ a_i)\] 其中\(c\)用一 ...
- Python - if-else 的多种简洁写法
本博客原文来自:http://www.cnblogs.com/xiexiaoxiao/p/7772441.html,对原作者表示感谢,此处个人转载. 1. 常用 if ... else写法 # 语法 ...
- TS流基本概念
在MPEG-2标准中,有两种不同类型的码流输出到信道:一种是节目码流(Program Stream, PS),适用于没有误差产生的媒体存储,如DVD等存储介质:另一种是传送流(Transport st ...
- F-stack及其Nginx、redis的编译安装
F-stack简介 F-stack粘合了dpdk.用户态协议栈和nginx.redis,弥补了dpdk没有协议栈的不足,并用nginx.redis提供了一个调用应用程序的接口. Quick Start ...