Nest-Session
Smoothness 2022/10/29 NestSession
本文介绍Nest-Session
,介绍了Session
的使用场景和用法。
# Nest-Session
Session
Session是服务器为每个用户的浏览器创建的一个会话对象,这个session会记录到浏览器的cookie来区分用户。
# 使用的包
- 因为默认框架是express,所以可以使用express的包
yarn add express-session
1 - 如果是TS则需要对应的类型包
yarn add @types/express-session
1
# 全局注册
- 当前端发送请求之后,会注入到此时用户的cookie中,名称为connect.sid
- 当新的接口发送请求的时候,前端需要带上这个cookie
- 如果是用的axios,默认不携带cookie,要想带上需要配置
axios.defaults.withCredentials = false
import * as session from 'express-session'
app.use(session({
secret: 'GGupzHH', // 签名,类似加盐
rolling: true, // 每次请求强行设置cookie,这将重置cookie过期时间。(默认false)
name: 'connect.sid', // 生成客户端cookie名字,默认connect.sid
cookie: {
path: '/',
secure: false,
httpOnly: true, // 是否能够修改
maxAge: 10000 // 过期时间(毫秒), 负数仅限于当前会话,null长时间存储
}
}))
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# 接口设置session
@Get('code')
getCodeInfo(@Session session: any) {
session.code = '要设置之后回传的信息'
}
1
2
3
4
5
2
3
4
5
# 接口获取携带的cookie中的session信息
@Post('code')
setCode(@Session session: any) {
console.log(session.code) // 值:要设置之后回传的信息
}
1
2
3
4
2
3
4