Sailsjs + vuejs + axios + CSRF 令牌
Sailsjs + vuejs + axios + CSRF tokens
我有些事情不明白。总是得到一个错误 403。我在前端有一个代码(vue.js),这里我从 Sails.js 得到一个令牌 _csrf,没问题。
axios.get('http://localhost:1337/csrfToken')
.then(response => {
this.$store.commit('csrf_update', response.data._csrf);
console.log("_csrf===",response.data._csrf);
axios.defaults.headers.post['X-CSRF-Token'] = response.data._csrf;
})
我有一个后端 sails.js,设置在 security.js
cors: {
allRoutes: true,
allowOrigins: 'http://localhost:8080',
allowCredentials: false,
allowRequestMethods:'GET, POST',
allowRequestHeaders:'content-type, X-CSRF-Token'}, csrf: true
我有一个这样的令牌_csrf: lM8avM1X-KvKz9v2zLnbQZFf8lKOThX9Llb4
我在请求时遇到错误 403。
axios.post('http://localhost:1337/login', form)
.then(response => {
this.$router.push('/kabinet');
}).catch(error => { console.log(error); });
list 403
那是我的Headers
headers
怎么了?
Sails 在配置> 安全文件中有一个名为 csrf 的 属性。如果将其设置为 true,则只需添加
<input type="hidden" name="_csrf" value="<%= _csrf %> />
到您的表格或在您需要的地方。
我使用的是 sails 1.0.2,它运行良好。
所以,一切都很简单。
在 (sails.js) 文件 security.js 中更改 allowCredentials: true
上的 allowCredentials: false
,并在前端 (vue.js) 中更改 axion,添加参数 withCredentials: true
之类的这个
axios.get('http://localhost:1337/csrfToken',{
withCredentials: true
}).then(response => {
console.log("_csrf===",response.data._csrf);
axios.defaults.headers.post['X-CSRF-Token'] = response.data._csrf;
})
并且在所有 axios 请求中必须是 withCredentials: true
在axios请求的headers中添加:
"x-csrf-token": window.SAILS_LOCALS._csrf
我有些事情不明白。总是得到一个错误 403。我在前端有一个代码(vue.js),这里我从 Sails.js 得到一个令牌 _csrf,没问题。
axios.get('http://localhost:1337/csrfToken')
.then(response => {
this.$store.commit('csrf_update', response.data._csrf);
console.log("_csrf===",response.data._csrf);
axios.defaults.headers.post['X-CSRF-Token'] = response.data._csrf;
})
我有一个后端 sails.js,设置在 security.js
cors: {
allRoutes: true,
allowOrigins: 'http://localhost:8080',
allowCredentials: false,
allowRequestMethods:'GET, POST',
allowRequestHeaders:'content-type, X-CSRF-Token'}, csrf: true
我有一个这样的令牌_csrf: lM8avM1X-KvKz9v2zLnbQZFf8lKOThX9Llb4
我在请求时遇到错误 403。
axios.post('http://localhost:1337/login', form)
.then(response => {
this.$router.push('/kabinet');
}).catch(error => { console.log(error); });
list 403
那是我的Headers
headers
怎么了?
Sails 在配置> 安全文件中有一个名为 csrf 的 属性。如果将其设置为 true,则只需添加
<input type="hidden" name="_csrf" value="<%= _csrf %> />
到您的表格或在您需要的地方。
我使用的是 sails 1.0.2,它运行良好。
所以,一切都很简单。
在 (sails.js) 文件 security.js 中更改 allowCredentials: true
上的 allowCredentials: false
,并在前端 (vue.js) 中更改 axion,添加参数 withCredentials: true
之类的这个
axios.get('http://localhost:1337/csrfToken',{
withCredentials: true
}).then(response => {
console.log("_csrf===",response.data._csrf);
axios.defaults.headers.post['X-CSRF-Token'] = response.data._csrf;
})
并且在所有 axios 请求中必须是 withCredentials: true
在axios请求的headers中添加:
"x-csrf-token": window.SAILS_LOCALS._csrf