我正在一个需要管理面板的网站上工作.我目前正在尝试设置该面板的身份验证,但我找不到拒绝任何访客用户(非管理员)访问的方法.当然,我有一个登录页面,登录后,它会路由到管理页面,但是当你没有登录时你也可以去/ admin.
routes.php:
Route::get('home', function(){
if (Auth::guest()) {
return Redirect::to('/');
} else {
return Redirect::to('admin');
}
});
Route::get('admin', function () {
return view('pages.admin.start');
});
MainController.php:
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MainController extends Controller {
public function getIndex() {
return view('pages.index');
}
public function getAbout() {
return view('pages.about');
}
public function getPortfolio() {
return view('pages.portfolio');
}
public function getShop() {
return view('pages.shop');
}
public function getContact() {
return view('pages.contact');
}
/*public function getAdmin() {
return view('pages.admin.start');
}*/
}
我真的可以在这里使用一些帮助,因为我完全卡住了,是的,我已经阅读了文档,尽管我可能只是遗漏了一些东西.
最佳答案 假设你有这样的一行:
'auth' => 'App\Http\Middleware\Authenticate',
在你的app / Http / Kernel.php文件中:
将您需要的所有路由“经过身份验证”放在分组中,但将“访客”路由保留在其中:
Route::get('home', function(){
if (Auth::guest()) {
return Redirect::to('/');
} else {
return Redirect::to('admin');
}
});
Route::group( ['middleware' => 'auth' ], function(){
Route::get('admin', function () {
return view('pages.admin.start');
});
Route::just-another-route()...;
Route::just-another-route()...;
});