laravel/react之间的身份验证问题,当fetch get时,所有工作:
api.php
Route::group([‘中间件’=> 'web'],function () {
Route::post('login','Auth\LoginController@login');
});
login.js
getCookie(name) {
if (!document.cookie) {
return null;
}
const xsrfCookies = document.cookie.split(';')
.map(c => c.trim())
.filter(c => c.startsWith(name + '='));
if (xsrfCookies.length === 0) {
return null;
}
return decodeURIComponent(xsrfCookies[0].split('=')[1]);
}
const csrfToken = this.getCookie('CSRF-TOKEN');
const headers = new Headers({
'Content-Type': 'application/json',
'X-XSRF-TOKEN': csrfToken
});
fetch('api/login',
{
method: 'POST',
headers,
body: JSON.stringify( this.state )
})
.then(response=> {
console.log(response);
this.setState({err: false});
this.props.history.push('/') ;
})
.catch(error=> {
console.log(error);
this.refs.email.value='';
this.refs.password.value='';
this.setState({err: true});
});控制台中的内容:

邮递员中有什么:

发布于 2018-08-21 04:43:08
错误419表示CSRF/XSRF令牌未正确包含在请求中。
CSRF和XSRF标记不同,因此不能互换使用。您可以将CSRF作为请求正文/a参数的一部分包含在内,也可以将XSRF作为标头包含在内。
您应该能够通过更改以下内容来使代码正常工作:
const csrfToken = this.getCookie('CSRF-TOKEN');
const headers = new Headers({
'Content-Type': 'application/json',
'X-XSRF-TOKEN': csrfToken
});至
const xsrfToken = this.getCookie('XSRF-TOKEN');
const headers = new Headers({
'Content-Type': 'application/json',
'X-XSRF-TOKEN': xsrfToken
});https://stackoverflow.com/questions/51936967
复制相似问题