Я разрабатываю API с Sails.js и пользовательское приложение с Ionic-React. При загрузке страницы я делаю запрос axios, чтобы получить токен _csrf. Когда я отправляю данные из формы входа в систему парусов, я всегда получаю 403 Запрещенный ответ. Я отключил csrf (config / security.js) в парусах, а затем смог получить ответ. Я отправляю токен в заголовке.
Я тоже пытаюсь получить cookie сеанса, но он не работает, я думаю, что это может быть причиной того, что сервер отклонил запрос.
Ionic App:
componentDidMount(this: this) {
axios.get('http://localhost:1337/api/v1/security/grant-csrf-token')
.then(response => {
const _csrf = response.data._csrf
this.setState({
form: {
...this.state.form,
_csrf: _csrf,
}})
});
}
OnSubmit:
const { emailAddress, password, _csrf } = this.state.form;
const config= {
data: {
"emailAddress": emailAddress,
"password": password,
},
headers: {
"x-csrf-token": _csrf
},
withCredentials: true,
jar:cookieJar,
};
axios.post('http://localhost:1337/api/v1/users/authenticate', null, config)
.then(res => {
console.log(res);
})
.catch(err => {
console.log(err);
})};
В сети Chrome DevTools Ответ:
![enter image description here](https://i.stack.imgur.com/kwCgT.png)
На почтальоне это то же самоезапрос работает, и я получаю 200 с пользовательскими данными, и запрос включает cookie sails.sid.
Я не хочу отключать защиту csrf, это не было бы решением. Это файл cookie sails.sid, который мне не хватает?