Double Submit Cookie的token怎么同时放在cookie和请求头里?
我在用Vue和Express实现Double Submit Cookie防护,但一直报错。后端设置的cookie是Secure和HttpOnly的,前端用document.cookie拿不到值。尝试在axios拦截器里加请求头:
axios.interceptors.request.use(config => {
const csrftoken = document.cookie.replace(/.*csrftoken=([^;]*)/, '$1');
config.headers['X-CSRF-Token'] = csrftoken;
return config;
});
但控制台提示cookie为空,后端返回403。明明登录时后端设置了Set-Cookie: csrftoken=xxx,难道HttpOnly导致无法读取?或者我应该把token存两份,一份HttpOnly,一份普通cookie?
前端axios拦截器不用改,应该能用。记得确保前后端的cookie domain和path配置一致,不然会有问题。