带NUXT、Axios、NEST和CSURF的CSRF保护

带NUXT、Axios、NEST和CSURF的CSRF保护,axios,nuxt.js,csrf,nestjs,csrf-token,Axios,Nuxt.js,Csrf,Nestjs,Csrf Token,我已经在谷歌上搜索了一段时间,但仍然无法在我的NestJS应用程序和我的Nuxt SSR前端之间获得有效的CSURF CSRF保护 目前,我的Nest main.js中有此实现: app.use(cookieParser()); app.use(csurf({ cookie: true })); app.use((req, res, next) => { const token = req.csrfToken(); res.cookie('XSRF-TOKEN'

我已经在谷歌上搜索了一段时间,但仍然无法在我的NestJS应用程序和我的Nuxt SSR前端之间获得有效的CSURF CSRF保护

目前,我的Nest main.js中有此实现:

  app.use(cookieParser());
  app.use(csurf({ cookie: true }));
  app.use((req, res, next) => {
    const token = req.csrfToken();
    res.cookie('XSRF-TOKEN', token);
    next();
  });
我不确定这是不是正确的方法,但到目前为止我找到了这个解决方案。
token
变量正在更改每个请求。据我所知,
req.cookie
将此令牌设置为名为
XSRF-token
的cookie,该cookie应在我的客户机上可用

在我的Nuxt应用程序中,我创建了一个插件:

export default function ({ $axios, $cookies }) {
  $axios.onRequest(() => {
    const token = $cookies.get('XSRF-TOKEN')
    $axios.defaults.headers.common['x-xsrf-token'] = token
  })
}
这里有两种行为:

  • token
    是从cookie中获取的,但一旦发生这种情况,它对所有请求都保持不变-当然,我会获取
    无效的csrf token
    错误
  • 另一种情况是
    标记
    未定义
  • 我的问题是如何在这些库之间实现安全的csrf保护

    其他信息:
    $cookies
    来自库
    cookieuniversalnumxt
    lib 在axios调用中,我还使用credentials:true设置了

    await this.$axios.patch(`endpoint`, {}, { withCredentials: true })