Задать вопрос
@photosho

Почему авторизация удаляется после перезагрузки?

Странная проблема. Авторизую пользователя через AJAX:

\Auth::attempt([
	'username' => $login,
	'password' => $password
], $remember);


Далее сразу же проверяю авторизованного пользователя и возвращаю результат проверки:

if (\Auth::user()) $result = 'Вошел';
else $result = 'Не вошел';


Если все введено правильно, то, как и требуется, результат положительный. Если ввожу логин или пароль неверно, то браузеру возвращается фраза "Не вошел".

Только вот проблема: почему-то после перезагрузки страницы пользователь оказывается не авторизованным. Это очень странно, возможно, кто-нибудь знает, в чем может быть проблема? Модель пользователя:

namespace App\Models;
use Illuminate\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Auth\Passwords\CanResetPassword;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Contracts\Auth\CanResetPassword as CanResetPasswordContract;

class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
	use Authenticatable, CanResetPassword;
	protected $table = 'users';
	protected $hidden = ['id', 'password', 'remember_token'];
	protected $fillable = ['username', 'email', 'password'];		
}


Функция контроллера, отвечающая за AJAX-выполнение входа:

if ($request->ajax()) {
	$params = $request->input('params');
} else exit();

$result = \Auth::attempt([
	'username' => $params['login'],
	'password' => $params['password']
], $params['remember']);
if (\Auth::user()) $result = 'Вошел';
else $result = 'Не вошел';

echo json_encode($result);
  • Вопрос задан
  • 383 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
wielski
@wielski
✔ Совет: Вам помогли? Отметьте ответы решением.
Давайте разберемся поподробнее.
И так, у вас в каком-либо контроллере примерно такой код:

if(Auth::attempt([
  'username' => $request->login,
  'password' => $request->password
], $request->remember)){
  return ['message' => 'success'];
}
return ['message' => 'error'];


Вы передаете с помощью post данной функции токен, логин, и пароль.
После чего сверяете, и если message -равно success, то перезагружаете страницу.
В данном случае при перезагрузке пользователь так и остается неавторизован?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы