Laravel аутентификация с Auth :: попытки () внутри AJAX вызова - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь аутентифицировать пользователя через AJAX вызов из login.blade. php в LoginController. php, в функцию authenticate (). Код выглядит следующим образом:

Ax ios код внутри login.blade. php

(function(){
   document.querySelector("#loginForm").addEventListener("submit", function(e){
      e.preventDefault()
      axios.post("login/tos", {
          'mail'     : document.querySelector('#mail').value,
          'password' : document.querySelector('#password').value,
          'rememberId' : document.querySelector('#rememberId').value,
      })
      .then(function(response){
          console.log("Success")
          console.log(response)
          clearError()

          location.reload();
      })
    })
})();

После некоторого логического вычисления приходит к аутентификации ( ) в LoginController. php

public function authenticate(LoginUser $request)
  {
    $credentials = [
      "mail" => $request->mail,
      "password" => $request->password
    ];

    echo " |OUTSIDE: ";
    echo ((Auth::check()) ? "AUTH TRUE " : "AUTH FALSE ");

    if (Auth::attempt($credentials)) {

      echo " |INSIDE: ";
      echo ((Auth::check()) ? "AUTH TRUE " : "AUTH FALSE ");

      $request->session()->regenerate();

      return response(['success' => true]);
    }
  }

Когда я запускаю этот код, страница перезагружается, но пользователь не входит в систему. Однако вывод на консоль перед перезагрузка страницы:

data: "| OUTSIDE: AUTH FALSE | INSIDE: AUTH TRUE"

Итак, я предполагаю, что Auth :: try () работает, но сессия удалена. Как я могу преодолеть эту проблему?

Я новичок в PHP и JS, и у меня ограниченное понимание сессий. Я благодарен за любую помощь, которую я могу получить.

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