Сессия Laravel уничтожена при обновлении страницы
У меня есть админ-панель, которую я защищаю аутентификацией пользователя. Как только я пытаюсь получить к нему доступ, он перенаправляет меня в форму входа в систему, которая использует промежуточное ПО "guest" (это ожидаемое поведение). Как только я пытаюсь войти в систему, она работает как чудо, перенаправляет меня на панель администратора и создает объект Auth (я могу получить имя). Однако, если я нажимаю на любую ссылку внутри панели или нажимаю F5, она перенаправляет меня обратно в форму входа. Чтобы проверить, что произошло, я удалил защиту промежуточного программного обеспечения 'auth' из панели администратора, и она выдает ошибку при попытке получить свойство Auth::user()->name.
Trying to get property 'name' of non-object
Поэтому я предполагаю, что он уничтожает объект Auth при каждом обновлении страницы, но я не понимаю, откуда происходит это поведение. Я использую промежуточное программное обеспечение Auth по умолчанию с LoginController, предоставленным в документации (с некоторыми изменениями):
<?php
namespace App\Http\Controllers\Authentication;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
class LoginController extends Controller
{
public function authenticate(Request $request){
$email = $request->input('email');
$password = $request->input('password');
$remember = $request->input('remember');
if (Auth::attempt(['email' => $email, 'password' => $password], $remember)) {
return redirect()->intended('dashboard');
}
}
public function index(){
return view('auth.login');
}
}
Все маршруты в админ-панели находятся внутри группы в моем файле маршрутов:
Route::middleware(['auth'])->group(function () {
//All of the admin routes here
});
Маршрут входа защищен промежуточным программным обеспечением "гостя", поэтому ни один аутентифицированный пользователь не может получить доступ к форме входа.
Пожалуйста, попросите меня опубликовать любой код, который, по вашему мнению, может быть полезен, я довольно новичок в Laravel и не знаю, что писать.
1 ответ
Я решил проблему. Это была просто ошибка новичка. У меня был Auth::logout()
функция в свойстве ссылки href, думая, что это сработает, когда кто-то щелкнет по ней. Вместо этого он вывел меня из системы сразу после загрузки страницы, поэтому была сессия только в первый раз.