Срок действия страницы Laravel + ReactJS истек, даже если в метаданных установлен csrf_token - PullRequest
0 голосов
/ 29 июня 2018

Я создаю веб-приложение, используя Laravel 5.6 и ReactJS 16.4.1.

Я установил csrf_token на master.blade.php на <head> следующим образом:

<meta name="csrf-token" content="{{csrf_token()}}">

Затем на мои реакции я загрузил свой регистрационный компонент примерно так:

export default class RegistrationForm extends Component {
    render() {
        return (
            <React.Fragment>
                <form method="post" action={this.props.actionUrl}>
                    <div className="form-group">
                      <label htmlFor="txtEmail">Email</label>
                      <input type="email" name="txtEmail" id="txtEmail" className="form-control" placeholder="Email" />
                    </div>
                    <div className="form-group">
                      <label htmlFor="exampleInputPassword1">Password</label>
                      <input type="password" name="txtPassword" id="txtPassword" className="form-control" placeholder="Password" />
                    </div>
                    <div className="text-right">
                        <button type="submit" name="btnRegister" id="btnRegister" className="btn btn-primary">Register</button>
                    </div>
                </form>
            </React.Fragment>
        );
    }
}

Затем, когда я нажимаю кнопку регистрации, меня перенаправляют на страницу The page has expired due to inactivity. Please refresh and try again..

Я не уверен, почему это все еще происходит, даже если у меня уже есть мета csrf-токена.

Я уже пробовал это , но все равно не работает.

Но когда я удаляю VerifyCsrfToken на Kernel.php, это работает. \App\Http\Modules\Common\Middleware\VerifyCsrfToken::class

Безопасно ли удалять этот класс? Хотя я все еще хочу проверить csrf, почему я не хочу просто удалить его из промежуточного программного обеспечения.

1 Ответ

0 голосов
/ 02 июля 2018

Я вручную добавил скрытое поле с {{csrf_token()}} в качестве значения, и теперь оно работает. Похоже, что в responsejs это поле должно быть добавлено вручную, кроме токена meta csrf.

...