node js 对cookie的操作

   Cookie是小甜饼的意思。顾名思义,cookie 确实非常小,它的大小限制为4KB左右,是网景公司的前雇员 LouMontulli 在1993年3月的发明。它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通过在 Cookie中存入一段辨别用户身份的数据来实现的。在编程世界里,我们通常对它做这样的理解:Cookie是存储在浏览器的缓存,用户登录之后返回的token可以存储在cookie中;

1.如何设置cookie的过期时间:

  expires:new Date( date + config.cookieTime + 28800000)

2. maxAge和expire的区别:

   参考网址 :http://www.cnblogs.com/yinhaiming/articles/1490811.html

.Expires指定一个绝对的过期时间(GMT格式),这么做会导致至少2个问题1)客户端和服务器时间不同步导致Expires的配置出现问题 2)很容易在配置后忘记具体的过期时间,导致过期来临出现浪涌现象;

.max-age 指定的是从文档被访问后的存活时间,这个时间是个相对值(比如:3600s),相对的是文档第一次被请求时服务器记录的Request_time(请求时间)

3.程序中node js 对cookie的操作


    expire中之所以加上后面的28800000 是因为默认的时间使用的是gmt(国际时间),国际时间使用的是中央时区的时间,北京是东八区,所以必须在国际时间的基础上加上8小时。单位是毫秒所以总数为:8*60*60*1000

4.设置当前用户的cookie在关闭浏览器之后,退出登录,并且删除cookie:

   这就需要我们不对maxAge和expire做任何的设置,保持默认值;

   如果在上述代码中配置maxAge等于-1,界面可以登录但是登陆成功之后个人的信息没有获取并展示到页面中;所以maxAge=-1并不可取;

5.前端取消设置cookie的过期时间,那么如何控制当前网站的cookie在失效的时间之后让当前用户登出;

   通过第4点,我们已经将前端过期时间取消,但是我们如何确保页面中从后台获取的cookie失效之后,将当前用户的登出,所以我们就需要在前端添加一个拦截器,拦截用户的请求,查看其中是否有用户的token,token是否已经失效;这样虽然我们没有明确设置cookie的失效时间,但是依旧可以控制超出失效时间的正常操作:

   前提:后端设置cookie的过期时间为12小时,如果token失效,用户的访问请求将无法完成前端发送过来的请求:

   实现:在web.xml中定义一个拦截器,用来拦截并验证所有需要登录才能访问界面的请求;(具体代码实现如亲们有需要请私聊小编)

6.有时候我们没有必要一定要把用户信息放在cookie,如果没有其他的必要原因,针对第4点要实现的效果,我们可以选择使用html5自带的sessionStorage;

   sessionStorage 和 localStorage 就一个不同的地方, sessionStorage数据的存储仅特定于某个会话中,也就是说数据只保持到浏览器关闭,当浏览器关闭后重新打开这个页面时,之前的存储已经被清除。而 localStorage 是一个持久化的存储,它并不局限于会话。

  在node js中的cookie的相关操作,基本上整理完了,请大家指正;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值