我使用的是Laravel 5.2,我在:
中有Authenticate.php文件\vendor\laravel\framework\src\Illuminate\Auth\Middleware
我需要对用户进行身份验证,以便用户无法通过在URL中写入来访问登录页面。怎么做? 当我搜索时,解决方案是针对在Http内部的Middleware文件夹中的Authenticate文件,这有点不同。
请告诉我怎么做。我试过了:
if(Auth::guard($guard) -> guest()){
if ($request -> ajax()){
return response['Unauthorized',401];
} else{
return redirect() -> guest('login');
}
}
return $next($request);
}
}
怎么做?请告诉我选项。邀请任何建议。 并且,提前谢谢你...... :)
答案 0 :(得分:1)
您在搜索时找到的解决方案是正确的,如果您查看了文档here,则应该在app/Http/Middleware
内编辑中间件,正确的方法是:
您必须更新具有此功能的中间件app/Http/Middleware/RedirectIfAuthenticated.php
public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->check()) {
return redirect('/admin');
}
return $next($request);
}
在你的情况下你可以做什么,你可以在你当前的句柄函数中使用相同的if子句,所以它看起来像这样:
if (Auth::guard($guard)->check()) {
return redirect('/admin');
}
if (Auth::guard($guard)->guest()) {
if ($request->ajax()) {
return response['Unauthorized',401];
} else {
return redirect()->guest('login');
}
}
return $next($request);
答案 1 :(得分:0)
将只有登录用户可以访问的所有路由放入Auth
中间件组:
Route::group(['middleware' => ['auth']], function () {
// Routes here
});