我需要保护他们免受查看。这意味着如果没有登录它不应该重定向到任何其他页面,如果有人试图访问,它应该返回到登录页面。
我正在使用Laravel 5.4和常规身份验证
php artisan make:auth
在登录控制器中
protected $redirectTo = '/home';
在Middleware RedirectifAuthenticated中我尝试这样但是它没有用。
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/home');
return redirect('/leadsadd');
return redirect('/leadslist');
return redirect('/opporadd');
return redirect('/opporlist');
return redirect('/accadd');
return redirect('/acclist');
return redirect('/selftask');
}
return $next($request);
}
它无法正常工作。我认为我正在做的方法是错误的。任何人都可以帮助我如何防止它,不应该重定向到任何路由或URL。 路线
Route::get('/', function () {
return view('auth.login');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Route::get('leadsadd','crmcontroller@addleads');
Route::get('leadslist', 'crmcontroller@leadslist');
Route::any('leadview/{id}','crmcontroller@show');
Route::get('leadedit/{id}','crmcontroller@edit');
提前致谢。
答案 0 :(得分:3)
您应该group your routes并向其添加int
中间件。如果任何未经过身份验证的用户尝试访问这些页面,则此中间件将自动重定向到登录页面。
auth
答案 1 :(得分:1)
你需要在你的路线中这样做
Route::group(['middleware' => 'auth'], function () {
// all authenticated users will have the access here!
]]);
并且您的RedirectIfAuthenticated.php
应该恢复原状
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/yourdashboardorwhatever');
}
return $next($request);
}
答案 2 :(得分:0)
在Laravel 5.4中有以下两种保护路线的方法
一种方法是使用web.php文件中的路由附加auth中间件
Route::get('profile', function () {
// Only authenticated users may enter...
})->middleware('auth');
另一种方法是在控制器的构造函数中附加中间件来处理您的路由。
public function __construct()
{
$this->middleware('auth');
}