首页 > 编程语言 >nodejs学习08——会话控制 session cookie token

nodejs学习08——会话控制 session cookie token

时间:2024-06-19 16:25:42浏览次数:10  
标签:浏览器 nodejs 08 cookieParser 会话 token cookie app response

会话控制

一、介绍

所谓会话控制就是 对会话进行控制
HTTP 是一种无状态的协议,它没有办法区分多次的请求是否来自于同一个客户端, 无法区分用户
而产品中又大量存在的这样的需求,所以我们需要通过 会话控制 来解决该问题
常见的会话控制技术有三种:

  • cookie
  • session
  • token

二、cookie

cookie 是 HTTP 服务器发送到用户浏览器并保存在本地的一小块数据
cookie 是保存在浏览器端的一小块数据
cookie 是按照域名划分保存的
简单示例:

浏览器向服务器发送请求时,会自动将 当前域名下 可用的 cookie 设置在请求头中,然后传递给服务器
这个请求头的名字也叫 cookie ,所以将 cookie 理解为一个 HTTP 的请求头也是可以的

填写账号和密码校验身份,校验通过后下发 cookie

有了 cookie 之后,后续向服务器发送请求时,就会自动携带 cookie

浏览器操作 cookie 的操作,使用相对较少,大家了解即可

  1. 禁用所有 cookie
  2. 删除 cookie
  3. 查看 cookie

express 中可以使用 cookie-parser 进行处理

点击查看代码
const express =require('express');
//1. 安装 cookie-parser npm i cookie-parser
//2. 引入 cookieParser 包
const cookieParser = require('cookie-parser');
const app = express();
//3. 设置 cookieParser 中间件
app.use(cookieParser());
//4-1 设置 cookie
app.get('/set-cookie', (request, response) => {
	// 不带时效性
	response.cookie('username','wangwu');
	// 带时效性
	response.cookie('email','[email protected]', {maxAge: 5*60*1000 });
	//响应
	response.send('Cookie的设置');
});
//4-2 读取 cookie
app.get('/get-cookie', (request, response) => {
	//读取 cookie
	console.log(request.cookies);
	//响应体
	response.send('Cookie的读取');
});

//4-3 删除cookie
app.get('/delete-cookie', (request, response) => {
	//删除
	response.clearCookie('username');
	//响应
	response.send('cookie 的清除');
});

//4. 启动服务
app.listen(3000, () => {
	console.log('服务已经启动....');
});

不同浏览器中的 cookie 是相互独立的,不共享

标签:浏览器,nodejs,08,cookieParser,会话,token,cookie,app,response
From: https://www.cnblogs.com/htj10/p/18256471

相关文章

  • 网络中token和sign的理解
    token:用户校验 1.客户端使用用户名跟密码请求登录 2.服务端收到请求,去验证用户名与密码 3.验证成功后,服务端会签发一个Token,这个Token是与用户名一一对应的(和用户名密码相关),token一般可以存储在缓存或数据库中,以方便后面查询出来进行验证。再把这个Token发送给客户端 4......
  • SpringBoot整合JWT(JSON Web Token)生成token与验证
    目录JWT什么是JWTJWT使用流程确定要传递的信息:生成JWT:JWT传输:客户端保存JWT:客户端发送JWT:服务器验证JWT:服务器响应:Token的使用示例:工具类R结果集返回一个生成的token创建拦截器JWT什么是JWTJWT(JSONWebToken)是是目前最流行的跨域认证解决方案。它通常被......
  • RERCS系统开发实战案例-Part08 FPM 应用程序的表单组件(From UIBB)与列表组件(List UI
    1、新建FromUIBB的FPMApplication的快速启动面板备注:该步骤可第一步操作,也可最后一步操作,本人习惯第一步操作。1)使用事务码LPD_CUST,选择对应的角色与实例进入快速启动板定制页面;2)新建FPMApplication应用程序;注意:此处的应用程序别名用于ListUIBB的实施方法IF_FPM_G......
  • Flink - [08] 状态一致性
    题记部分 一、什么是状态一致性  有状态的流处理,内部每个算子任务都可以有自己的状态。对于流处理器内部来说,所谓的状态一致性,其实就是我们所说的计算结果要保证准确、一条数据也不应该丢失,也不应该重复计算,在遇到故障时可以恢复状态,恢复以后的重新计算,结果应该也是完全正......
  • 提供一系列RF和微波:MMA041AA、MMA040AA(射频放大器)MMA022AA,MMS008AA射频开关
    MMA041AA是一款低噪声分布式放大器芯片,工作频率范围为DC至26GHz。该放大器提供18dB的平坦增益、3.2dB噪声系数和22dBm输出功率(1dBm增益压缩)。MMA041AA放大器具有内部匹配50ω的RFI/O,便于集成到MCM中。非常适合测试仪器和通信基础设施应用。特性宽带性能:DC至26GHz高增益......
  • 请解释Token和Session的区别
    在前端开发中,Token和Session是两种常见的身份验证和状态管理机制。理解它们的区别对于构建安全和高效的Web应用至关重要。在这篇文章中,我们将详细介绍Token和Session的概念、工作原理、优缺点,并通过示例代码帮助您更好地理解这两者的区别。什么是Token?Token是一种数字身份......
  • 【408考点之数据结构】数据结构的基本概念
    数据结构的基本概念基本概念和术语数据结构是计算机科学中一个非常重要的概念,它描述了数据元素之间的关系及其在计算机内存中的组织方式。理解数据结构的基本概念和术语是学习数据结构的第一步。数据结构可以分为逻辑结构和存储结构两类。逻辑结构是指数据元素之间的逻辑......
  • 【408考点之数据结构】算法和算法评价(时间空间复杂度)
    算法和算法评价算法的基本概念在计算机科学中,算法是解决特定问题的一系列步骤。一个好的算法应该具备以下五个基本特性:有穷性:算法必须在有限的步骤内终止。确定性:每一步骤都必须明确,没有歧义。可行性:算法的每个步骤都可以通过基本运算在有限时间内完成。输入:一个算法有零......
  • 【PXIE301-208】基于PXIE总线架构的Serial RapidIO总线通讯协议仿真卡
     板卡概述       PXIE301-208是一款基于3UPXIE总线架构的SerialRapidIO总线通讯协议仿真卡。该板卡采用Xilinx的高性能Kintex系列FPGA作为主处理器,实现各个接口之间的数据互联、处理以及实时信号处理。板卡支持4路SFP+光纤接口,支持一个PCIex8主机接口,板载1组独立的6......
  • centos 7无需token编译安装freeswitch 1.10.11 ——筑梦之路
    准备工作安装编译工具和依赖包yumupdate-ysudoyuminstallepel-releasevimtcpdumpnet-tools.x86_64-ysudoyuminstallgcc-c++sqlite-develzlib-devellibcurl-develpcre-develspeex-develldns-devellibedit-developenssl-develgit-yyuminstallyasm......