Я новичок в laravel framework и пытаюсь создать аутентификацию для веб-сайта. Есть что-то действительно странное, что происходит, и я не могу понять, что случилось.laravel 5.2 authentication - Missing Links
Я выдаю команду php artisan make: auth, и я мог видеть, что соответствующие файлы генерируются под контроллерами и ресурсами/представлениями. Я могу войти и посмотреть домашнюю страницу (после входа в систему). Я также могу выйти из системы, и все работает плавно до сих пор.
сейчас иногда возникает проблема, когда я когда-либо отсутствую в браузере, и возвращаюсь на сайт, он начинает действовать странно. приложение теряет информацию о текущем зарегистрированном пользователе. Если я перейду на домашнюю страницу (фактическую домашнюю страницу сайта, а не страницу после входа в систему), страница входа в систему («/ login») не появится. Мне нужно вручную выйти из системы (набрав «/ logout» в URL-адресе), а затем попробуйте ввести URL-адрес входа в систему.
это мой маршруты файл:
Route::get("/", "[email protected]")->name("home");
Route::get("/search/{query}","[email protected]")->name("search");
Route::get("/searchBook/{id}","[email protected]")->name("searchBook");
Route::get("/stories","[email protected]")->name("stories");
Route::get("/user/{id}/deleteBooks/{book_id}","[email protected]")->name('user.delete.books');
Route::get("/user/{id}/showBooks/{book_id}","[email protected]")->name('user.show.books');
Route::group(['middleware' => 'web'], function() {
Route::auth();
Route::resource('user', 'UserController');
Route::get('/user/{user}/books',"[email protected]")->name('user.get.books');
Route::post("/user/{user}/createBooks","[email protected]")->name('user.create.books');
Route::get('/home', '[email protected]')->name("dashboard");
Route::post("/savemap","[email protected]")->name("savemap");
});
Кроме того, кажется, приложение само по себе не очень заботясь о проверке подлинности. Мне приходится вручную проверять аутентификацию (по Auth :: check()) на множестве шагов, и это больно. Например, на многих местах я должен вручную делать
if (Auth::check()) {
// some code
}
else{
Auth::logout();
return redirect()->route('home'); //named route
}
Это обновление: Маршрут, который дает мне проблемы не был помещен под веб-промежуточного слоя в routes.php файле. Поэтому, когда я разместил соответствующий маршрут под промежуточным программным обеспечением Интернета, я действительно смог получить доступ ко всем параметрам Auth :: и текущему зарегистрированному пользователю.
Означает ли это, что я должен разместить все мои «входные» маршруты (доступные маршруты после входа в систему) внутри промежуточного программного обеспечения? и как насчет маршрутов/login/logout ... Должны ли они быть местами промежуточного ПО?