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 ...
随机推荐
- Java学习---IO操作
基础知识 1.文件操作 Java语言统一将每个文件都视为一个顺序字节流.每个文件或者结束于一个文件结束标志,或者根据系统维护管理数据中所纪录的具体字节数来终止.当一个文件打开时,一个对象就被创建,同时 ...
- 【Alpha】总结 - (待更)
Alpha总结 1. 个人总结 PM & BackEnd - 胡武成 BackEnd - 吴松青 Web - 孙浩楷 Web - 练斐弘 App - 胡冰 App - 黄世辉 UI - 张旗 ...
- Jarsigner签名使用
转载请标明出处: http://www.cnblogs.com/why168888/p/6548544.html 本文出自:[Edwin博客园] 如何签名: jarsgner-verbose-keys ...
- webkit架构
简要的说,WebKit由三个模块组成:JavaScriptCore.WebCore 和 WebKit.WebKit作为了整个项目的名称. JavaScriptCore:是JavaScript解释器: ...
- Java并发案例03---生产者消费者问题02
生产者消费者第二种情形 package com.maple.msb.one; public class ProducerConsumer { public static void main(Strin ...
- Odoo模块添加logo
模块的static目录是专门用于存放静态文件内容如:图片.css等的.其中,description目录是存放关于模块的一些描述性的文件的,其中,模块的图标也放在下面,以icon命名.
- Emacs 快速指南 - 原生中文手册
Emacs 快速指南 -折叠目录 1. 小结(SUMMARY) 2. 基本的光标控制(BASIC CURSOR CONTROL) 3. 如果 EMACS 失去响应(IF EMACS STOPS RES ...
- ListView 中的TextView实现跑马灯效果
案例:怎么样在一个ListView中含有TextView的item中实现字母滚动呢.这个在一些特定的场合经常用得到.如下图,当焦点位于某个item的时候其内容就自动滚动显示 要实现这样的效果,废话不多 ...
- 多线程系列 - 基础篇01 - 线程基本概念 & 线程优先级 & 守护线程 60%
1.什么是线程 将线程理解为轻量级进程,它与进程的最大的区别是: 多个线程共享一个进程资源: 对于OS的许多资源的分配和管理(如内存)通常都是进程级别的,线程只是os调度的最小单位: 相对于进程来说更 ...
- EF Core 中DbContext不会跟踪聚合方法和Join方法返回的结果,及FromSql方法使用讲解
EF Core中: 如果调用Queryable.Count等聚合方法,不会导致DbContext跟踪(track)任何实体. 此外调用Queryable.Join方法返回的匿名类型也不会被DbCont ...