带NUXT、Axios、NEST和CSURF的CSRF保护
我已经在谷歌上搜索了一段时间,但仍然无法在我的NestJS应用程序和我的Nuxt SSR前端之间获得有效的CSURF CSRF保护 目前,我的Nest main.js中有此实现:带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'
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
错误标记
为未定义
时$cookies
来自库cookieuniversalnumxt
lib
在axios调用中,我还使用credentials:true设置了:
await this.$axios.patch(`endpoint`, {}, { withCredentials: true })