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 ...
随机推荐
- 设计模式(17) 访问者模式(VISITOR) C++实现
意图: 表示一个作用于某对象结构的各元素的操作.它使你可以再不改变各元素的类的前提下定义作用于这些元素的新操作. 动机: 之前在学校的最后一个小项目就是做一个编译器,当时使用的就是访问者模式. 在静态 ...
- MySQL 数据库--索引原理与慢查询优化
索引的原理 本质都是:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方式来锁定数据. 索引的数据结构 b+ ...
- 用windows公文包实现不同盘符两个文件文件夹文件同步
需求:磁盘D的文件夹A需同步到磁盘E 步骤: 1.在磁盘E中新建公文包B 2.将D盘的文件夹A复制到公文包B 3.修改文件夹A中的内容 4.选中公文包B,右键"全部更新"
- Eclipse+Maven 项目创建
★:jar包下载不了的话可能是镜像里没有这个版本,换个低版本的就行 ★:eclipse工程validating很慢,可以先关掉验证(一般对项目没什么影响) ★:eclipse工程pom.xml文件报错 ...
- linux下Python3的安装
linux平台下,需要gcc和openssl-devel的依赖包,所以没有的话需要先安装: yum -y install gcc* yum -y install openssl-devel 然后将 ...
- select下拉的绑定及回显(ajxa)
下拉列表一般通过ajax请求数据绑定 // 绑定新闻类型下拉 function news_type() { var news_type=$("#news_type").val(); ...
- Dockerfile.md
Docker 使用 前提条件 Docker目前只能在64位CPU架构的计算机上运行(目前只能是x86_64 .amd64). Linux 3.8 或 更高版本的内核.3.8之前的版本也能运行,但效果不 ...
- sprintf格式化字符串安全问题
先看sprintf用法: 定义和用法 sprintf() 函数把格式化的字符串写入变量中. arg1.arg2.++ 参数将被插入到主字符串中的百分号(%)符号处.该函数是逐步执行的.在第一个 % 符 ...
- 随手练——HDU 1284 动态规划入门
#include <iostream> #include <algorithm> #include <string.h> using namespace std; ...
- SVN篇
启动SVN : svnserve -d -r svn 查看进程: ps -ef | grep svmserve -------------------------------------------- ...