【发布时间】:2021-10-18 18:46:10
【问题描述】:
我有一个在 NestJs 中完美运行的后端。
现在我需要使用 cookie 添加一些功能。所以我安装了cookie-parser,用import * as cookieParser from 'cookie-parser'把它导入到主文件,用app.use(cookieParser())把它放到应用程序中。
在控制器中,我从 express 导入了请求和响应:
import { Request, Response } from 'express';
端点如下所示:
@Get('/refresh')
async refreshToken(
@Res({ passthrough: true }) response: Response,
@Req() request: Request)
{
const {refreshToken} = request.cookies // refreshToken is [Object: null prototype] {}
const userData = await this.authService.refresh(refreshToken)
response.cookie('refreshToken', userData.refreshToken, {maxAge: 30 * 24 * 60 * 60 * 1000, httpOnly: true, secure: true})
return userData
}
我可以将 cookie 放入响应,但问题是请求中根本没有 cookie - 它显示 [Object: null prototype] {}
我按照官方设置https://docs.nestjs.com/techniques/cookies
非常感谢任何建议!
【问题讨论】:
-
您一开始是如何尝试设置 cookie 的?如果没有可用的 cookie,那么您会在此处返回一个空对象是正常的。是否只是以下几行试图设置
refreshToken?如果是这样,您需要验证浏览器是否确实按预期处理并实际将它们发回。您传递的选项可能有问题 -
谢谢,杰西!如图所示,问题出在汽车设置中。
-
...focking 自动拼写...我的意思当然是 CORS 设置)
标签: nestjs