reactjs - api\login 500 错误 laravel/react 登录
问题描述
之间的身份验证问题laravel/react
,当获取获取时,所有工作:
api.php
Route::group(['middleware' => ['web']], function () {
Route::post('login','Auth\LoginController@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});
});
解决方案
419 错误表明 CSRF/XSRF 令牌未正确包含在请求中。
和令牌不相同CSRF
,XSRF
因此不能互换使用。您可以将 CSRF 作为请求正文/参数的一部分包含在内,也可以将 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
});
推荐阅读
- scala - 如何在scala spark dataFrame中将模式的DataType转换为另一个
- react-native - react-native -gesture-handler - 如何使用 onHandlerStateChange 和 onPress?
- multithreading - std::atomic 的替代方案
在 c++11 或相同行为之前 - performance - 在 GAP 中找到图的所有最大团的有效方法
- c++ - 隐式转换为 std::sort 但不是 std::map 的比较函数对象(函子)?
- reactjs - 引导轮播未在 reactjs 中显示
- python - 了解卫星纬度、经度、高度和指向角度,获取地球上的纬度经度
- mysql - 使用 heidiSQL 创建存储过程时出错
- javascript - 如何比较两个字符串并计算相似字符的数量?
- python - Python 请求:缺少内容长度响应