可以通过 Cookie
类操作 cookie
通过 request
对象获取:
import { Controller, Get, Request } from '@tiger/common'
@Controller('users')
export class User extends BaseController {
@Get()
index(request: Request) {
const key = 'username';
console.log(request.cookieValue(key))
}
}
cookie
是跟随响应一起发送的,我们我们需要将 Cookie
实例附加在响应对象上来设置 cookie
import { Controller, Get, Cookie, Response } from '@tiger/common'
@Controller('users')
export class User {
@Get()
index() {
const cookie = new Cookie('username', 'tiger')
return new Response().withCookie(cookie).success({
data: 'im data'
})
}
}
response
对象上还添加了简便方法 cookie(name, value [, options])
来设置 cookie
:
import { Controller, Get, Cookie, Response } from '@tiger/common'
@Controller('users')
export class User {
@Get()
index() {
return new Response().cookie('username', 'tiger').OK({
data: 'im data'
})
}
}
框架提供了 cookie
的默认配置,配置文件位于 src/config/cookie.js
,默认使用该配置文件的配置来设置 cookie
:
也可以使用自定义配置作为参数传入构造函数:
import { Controller, Get, Cookie, Response } from '@tiger/common'
@Controller('users')
export class User {
@Get()
index() {
const cookie = new Cookie('username', 'tiger', {
// options
})
return new Response().withCookie(cookie).OK({
data: 'im data'
})
}
}
单独设置
signed
配置后,获取cookie
的时候需要传入一致的signed
配置:this.request.cookieValue('username', { signed: false })