首页 > 解决方案 > 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});
      });

控制台中在控制台中 有什么:邮递员中有什么:在邮递员

标签: reactjslaravelpostloginfetch

解决方案


419 错误表明 CSRF/XSRF 令牌未正确包含在请求中。

和令牌不相同CSRFXSRF因此不能互换使用。您可以将 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
});

推荐阅读