Laravel - CSRF не совпадает с маркером сессии - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь отправить одну форму и войти в систему для одного пользователя, и кажется, что это нормально работает в localhost, но когда я загружаю этот код на работающий сервер, токен не работает.

Я проверил, что значение токена CSRF и токена сеанса не совпадает.

Также не работает пост-запрос, поэтому я добавил маршрут, кроме VerifyCsrfToken, теперь пост-запросработает, но после входа пользовательский сеанс не работает

if (Session::token() != $request->get('_token'))
{
   echo 'Not Match';exit;
}

Приведенный выше результат показывает, что нет совпадений.

Я восстановил ключ на сервере, также я предоставил разрешение на хранениепапка.

Данные кэша были очищены, но проверка подлинности не работает, она не работает.

<form class="login-form js-login-frm" role="form" method="POST" action="{{ route('admin.login-post') }}">
    {{ csrf_field() }}
    <div class="form-body">
        <div class="row">
            <div class="col-xs-12">
                <div class="form-group">
                    <div class="input-group" title="{{__('username_or_email_address')}}">
                        <span class="input-group-addon"><i class="fa fa-envelope-o"></i></span>
                        <input class="form-control" autofocus type="text" id="email_address" placeholder="{{ __('username_or_email_address') }}" name="login"/>
                    </div>
                </div>
            </div>
            <div class="col-xs-12">
                <div class="form-group">
                    <div class="input-group" title="{{__('enter_password')}}">
                        <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                        <input class="form-control" id="password" type="password" placeholder="{{ __('enter_password') }}" name="password"/>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="form-actions">
        <button class="btn-del btn-5 btn-5a fa fa-lock login-btn" type="submit" id="login_btn">
            <span>{{ __('login') }}</span>
        </button>
    </div>
</form>

В моем контроллере

$remember = $request->remember ? true : false;
$auth = Auth::guard('web')->attempt([
  'email' => $request->login,
  'password' => $request->password,
  'is_active' => 1
], $remember);

Этот код работаетхорошо, но пользователь не перенаправляется на страницу панели инструментов, которую он перенаправляет на страницу входа снова.

Может ли кто-нибудь помочь с регистрацией пользователя в системе и перенаправить на правильный маршрут.

1 Ответ

0 голосов
/ 24 сентября 2018

В тестовой среде токен CSRF не проверяется в промежуточном программном обеспечении.Замените {{ csrf_field() }} на @csrf, и все будет в порядке.Взгляните на исходный код сгенерированной страницы входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...