当前位置:首页 > 服务端 > express中间件之cookie-session的使用

express中间件之cookie-session的使用

2022年08月06日 16:12:37服务端4

这是一个以cookie为基础的session中间件。

用户session可以通过cookies以下面两种方式存储:存储在客户端或者服务器端。

  • 一个模块通过cookie将session值存储在客户端。
  • 一个模块像express-session那样仅将session identifier通过cookie存储在客户端,将session值存储在服务器端,比如数据库中。

下面几点将帮助你,选择一种去使用:

  • cookie-session不需要任何数据库/资源存放在服务器端,只要所有的session值不超过最大的客户端cookie数量限制。
  • cookie-session可以简化特定的负载均衡场景。
  • cookie-session可以使用轻量级的sesseion并包括一个identifier去查询二级存储,从而减少数据库的查询次数。

API

var cookieSession = require('cookie-session');
var express = require('express');

var app = express();

app.use(cookieSession({
  name: 'session',
  keys: [/*secret keys*/],

  //Cookie Options
  maxAge: 24*60*60*1000; //24hours
}))

cookieSession(options)

通过提供的选项,创建一个新的cookie session中间件。这个中间件会将session属性依附依附到req上,session属性提供一个对象代表加载的session。这个session可以是一个新的session,如果request中没有提供有效的session,或者是一个在request中已经加载了的session。

这个中间件将自动地想response中添加Set-Cookie头,如果req.session的内容被修改了的话。

Options

Cookie session在options对象中接受下面这些属性。

name

设置cookie的名称,默认是session。

keys

用于加密和解密cookie值的秘钥列表。cookies总是使用keys[0]去加密,而其他的keys用来解密。

secret

如果keys没有提供的话,secret是一个字符串将作为单个的秘钥。

Cookie Options

其他的options可以通过cookies.get()和cookies.set()来使用,去控制安全、域名、路径和其他设置项。

这些选项包括下面的这些:

  • maxAge:一个代表从现在到过期的数字,以毫秒为单位。
  • expires:一个日期对象代表cookie失效的日期。(通常expires在session的最后一个选项)
  • path:一个代表cookie路径的字符串。
  • domain:一个代表cookie域名的选项(默认没有)
  • sameSite:一个boolean值或者字符串代表cookie是否是同一个网站的cookie(默认false)。这个选项可以被设置为’strict’,’lax’或者true(会被映射为’strict’)。
  • secure:一个boolean值暗示这个cokkie是否只能在https上传输(默认为false)
  • httpOnly:一个boolean值代表cookie是否只能在HTTP(S)上传输,并且不可以通过javascript传输。
  • signed:一个boolean值代表这个cookie是否可以被加密。(默认是true)
  • overwrite:一个boolean值代表是否可以设置同样name的cookie的值(默认为true)

req.session

代表request中的session。

.isChanged
如果在请求期间session发生了改变,值为true

.isNew
如果session是新的,值为true

.isPopulated
决定这个session是否已经存在或者是空的。

req.sessionOptions

代表当前请求的session设置项。

Destroying a session

删除一个session,只需要把它置为null。

req.session = null

作者:zhu jun~
来源链接:https://blog.csdn.net/zhujun_xiaoxin/article/details/79090976

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/18391.html

标签: CookieSession
分享给朋友:

“express中间件之cookie-session的使用” 的相关文章

session,ajax 跨域cookie

 什么是Session, 什么是Cookie? Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID为标识符来存取服务器端的Session存储空间。而SessionID这一数据则...

session、cookie与“记住我的登录状态”的功能的实现

Cookie的机制 Cookie是浏览器(User Agent)访问一些网站后,这些网站存放在客户端的一组数据,用于使网站等跟踪用户,实现用户自定义功能。 Cookie的Domain和Path属性标识了这个Cookie是哪一个网站发送给浏览器的;Cookie的Expires...

HTTP协议-Cookie和Session详解

HTTP协议-Cookie和Session详解

前言: 会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的跟踪技术就是Cookie和Session。 Cookie通过在客户端记录信息确定用户身份,Session通过在服务器记录确定用户身份。 本章将系统的讲述Cookie和Sessio...

你必须知道的session与cookie

你必须知道的session与cookie

Session本质 提到Session我们能联想到的就是用户登录功能,而本身我们使用Session的基础是通过url进行访问的,也就是使用http协议进行访问的,而http协议本身是无状态的,那么问题来了服务器端是怎么验证客户端身份的? 答:服务器端和客户端验证的联系就是s...

Cookie和Session的区别与联系

Cookie和Session的区别与联系

Cookie和Session Session 会话的理解 Session的作用 HTTP协议的无状态特点 Sessio...

cookie、session、token之间的关系

cookie、session、token之间的关系

 Cookie机制 由于HTTP是一种无状态协议,服务器没有办法单单从网络连接上面知道访问者的身份,为了解决这个问题,就诞生了Cookie。Cookie实际上是一小段的文本信息。Cookies是由服务器产生的。接下来我们描述一下Cookie产生的过程。浏览器第一次...

Servlet之cookie和session简介及其作用

Servlet之cookie和session简介及其作用

一、cookie和session简介 1.浏览器和服务器是多对一的关系 2.业务:登录时记录账号,后续的页面上显示此账号 3.使用如下对象存储账号都不行 request:多个请求之间共用账号,不能用request c...

JavaWeb Cookie客户端技术和Session服务端技术详解

JavaWeb Cookie客户端技术和Session服务端技术详解

目录 1.1  Cookie机制 1.1.1  什么是Cookie 1.1.2  记录用户访问次数 1.1.3  Cookie的不可跨域名性 1.1.4  Unicode编码:保存中文 1.1....

APPlication,Session和Cookie的区别

APPlication,Session和Cookie的区别

Application 任意大小 整个应用程序的生命期 所有用户 服务器端 Session 小量,简单的数据 用户活动时间+一段延迟时间(一般为20分钟) 单个用户 服务器端 Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端...

Cookie和Session

Cookie和Session

Cookie和Session Cookie Cookie是服务器通知客户端保存键值对的一种技术,客户端有了Cookie后,每次请求都发送给服务器,每个Cookie的大小不能超过4kb 其中cookie的值不可以包含空格、方括号、圆括号、等号、逗号,双引号,斜杠,问号,...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。