美文网首页
项目中cookie的基本使用

项目中cookie的基本使用

作者: LYF闲闲闲闲 | 来源:发表于2017-05-05 12:11 被阅读106次

1. 什么是cookie

  1. cookie 就是浏览器储存在用户电脑上的一小段文本文件,cookie 是纯文本格式,不包含任何可执行的代码。
  2. 一个 Web 页面或服务器告知浏览器按照一定规范来储存这些信息,并在随后的请求中将这些信息发送至服务器,Web 服务器就可以使用这些信息来识别不同的用户。

为什么会出现cookie:

  • 在早期,服务器无法知道两个请求是否来自同一个浏览器
  • 前后端的交互因为HTTP无状态的特性受到阻碍了
    • 出现了cookie在客户端保存状态,每次客户端发送请求会携带cookie的值到服务器进行处理。

cookie的工作:

  1. 浏览器发送请求给服务器
  2. 服务器设置cookie的值
  3. 浏览器中保存了cookie的值

cookie的属性

  1. value——指定cookie的值
  2. expires——指定cookie过期时间,格式采用Date.toUTCString(),将Date对象转换为字符串
  3. domain——指定cookie所在的域名,如果未指定,默认为设定该cookie`的域名
  4. path——用来指定路径,如果未指定,默认为请求该 cookie 的网页路径,也就是根目录/
  5. secure——指定cookie只能在加密协议HTTPS下发送到服务器。
  6. max-age——指定cookie有效期。
  7. HttpOnly——设置该cookie不能被JavaScript读取

2. 使用方法

  1. 前端在设置 document.cookie = "path=/"; ,可以设置其他的属性,以分号分隔,我这里就是举个例子。

  2. 服务器接收请求之后设置cookie的值 (登陆时进行的验证)

const login = require('../dbs/login-db');
const express = require('express');
const router = express.Router();

router.post('/login', (req, res)=> {

    login(req.body, (docs)=> {
        if (docs.length === 0) {
            res.send(false);
        } else {
            if (docs[0].password === req.body.password) {
       
              
                req.session.userName = docs[0].name;
                var Cookies = {};
                //读取请求的cookie
                req.headers.cookie && req.headers.cookie.split(';').forEach(function (Cookie) {
                    var parts = Cookie.split('=');
                    Cookies[parts[0].trim()] = ( parts[1] || '' ).trim();
                });

                if (Cookies.user !== req.session.userName) {
                    console.log('user');
                   //这里设置cookie的值,也可以设置很多的属性,这里仅仅是举例
                    res.cookie('user', req.session.userName);
                }

                res.send(true);
            } else {
                res.send(false);
            }
        }
    });
});

module.exports = router;

一定要刷新界面,别问我为什么,刷新界面之后可以查看到Request Headers中有了Cookie的内容,找到chorm浏览器中以下内容:

相关文章

网友评论

      本文标题:项目中cookie的基本使用

      本文链接:https://www.haomeiwen.com/subject/eclctxtx.html