zoukankan      html  css  js  c++  java
  • express框架中cookie的使用

    Set-cookie:name=name;expires=date;path=path;domain=domain
    支持cookie的浏览器都会对此作出反应,即创建cookie文件并保存(也可能是内存cookie),用户以后在每次发出请求时,浏览器都要判断当前所有的cookie中有没有没失效(根据expires属性判断)并且匹配了path属性的cookie信息,如果有的话,会以下面的形式加入到请求头中发回服务端:
    
    Cookie: name="zj"; Path="/linkage"
    
    服务端的动态脚本会对其进行分析,并做出相应的处理,当然也可以选择直接忽略。
    
    这里牵扯到一个规范(或协议)与实现的问题,简单来讲就是规范规定了做成什么样子,那么实现就必须依据规范来做,这样才能互相兼容,但是各个实现所使用的方式却不受约束,也可以在实现了规范的基础上超出规范,这就称之为扩展了。无论哪种浏览器,只要想提供cookie的功能,那就必须依照相应的RFC规范来实现。所以这里服务器只管发Set-cookie头域,这也是HTTP协议无状态性的一种体现。

    需要注意的是,出于安全性的考虑,cookie可以被浏览器禁用。

    name: 类型为String 
    value: 类型为String和Object,如果是Object会在cookie.serialize()之前自动调用JSON.stringify对其进行处理 
    Option: 类型为对象,可使用的属性如下 
    domain:cookie在什么域名下有效,类型为String,。默认为网站域名 
    expires: cookie过期时间,类型为Date。如果没有设置或者设置为0,那么该cookie只在这个这个session有效,即关闭浏览器后,这个cookie会被浏览器删除。 
    httpOnly: 只能被web server访问,类型Boolean,禁止客户端JavaScript的访问,禁止后不能使用document.cookie。 
    maxAge: 实现expires的功能,设置cookie过期的时间,类型为String,指明从现在开始,多少毫秒以后,cookie到期。 
    path: cookie在什么路径下有效,默认为’/’,类型为String 
    secure:只能被HTTPS使用,类型Boolean,默认为false 
    signed:使用签名,类型Boolean,默认为false。express会使用req.secret来完成签名,需要cookie-parser配合使用

    设置cookie

    var express=require('express');
    var cookie=require('cookie-parser'); 
    var app=express();
    
    
    app.use(cookie());
    
    app.get('/',function(req,res){
    
       if(req.cookies.user){
           res.send('欢迎在次登录')
       }
        else{
           res.cookie('user',1,{ expires: new Date(Date.now() + 100), httpOnly: true });
           res.send('欢迎新用户登录')
       }
    });
    
    app.listen(8888);

     

     

  • 相关阅读:
    Linux mysql忘记密码 修改密码 解决方法
    nginx http转https后js,css样式丢失/没显示
    Spring cron 表达式
    Python 学习笔记 -- 装饰器
    Python 学习笔记 -- 一些常用的BIF
    Python 学习笔记 -- 类的一些小知识
    Python 学习笔记 -- 继承与多态(入门级实例)
    Python 基础实战 -- 小游戏之乌龟吃鱼(其实只能看不能玩.....)
    Python 学习笔记 -- 类的访问限制
    Python 学习笔记 -- 类和实例
  • 原文地址:https://www.cnblogs.com/jianxian/p/12327102.html
Copyright © 2011-2022 走看看