Laravel 5.1真的有最小的文檔.. 我需要了解如何保護使用驗證middileware路線清晰的想法..使用Laravel驗證的中間件
文檔講述了以「中間件」 =>「身份驗證」參數添加到路由。 還是能做到的
public function __construct()
{
$this->middleware('auth');
}
但如何使用驗證的中間件實際用戶認證和自動重定向從保護的途徑/登錄?
Laravel 5.1真的有最小的文檔.. 我需要了解如何保護使用驗證middileware路線清晰的想法..使用Laravel驗證的中間件
文檔講述了以「中間件」 =>「身份驗證」參數添加到路由。 還是能做到的
public function __construct()
{
$this->middleware('auth');
}
但如何使用驗證的中間件實際用戶認證和自動重定向從保護的途徑/登錄?
在Kernel.php - 有這樣的保護下$ routeMiddleware註冊中間件:
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
];
你可以看到 '權威性' 註冊爲使用App \ HTTP \中間件\驗證。
然後你就可以走這條道路 - 如果你打開/app/Http/Middleware/Authenticate.php, 你會發現公共職能手柄:
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return redirect()->guest('auth/login');
}
}
return $next($request);
}
這裏就是重定向管理,並且您可以根據自己的需要對其進行修改,或者您可以創建自定義中間件。
最後 - 因爲它是寫在文件 - 控制器,這將需要進行身份驗證,您將添加
public function __construct()
{
$this->middleware('auth');
}
您可以創建自定義的中間件如果提供者不適合您的需求。
在laravel 5.2,如果你想隱藏的登記表或登錄表單的觀點,你應該用你的中間件:
$this->middleware('mymiddleware', ['only' => ['register', 'showRegistrationForm', 'login', 'showLoginForm']]);
OR
$this->middleware('mymiddleware', ['except' => ['register', 'showRegistrationForm', 'login', 'showLoginForm']]);
這是因爲需要註冊並登錄路線是AuthController的post方法,而showXxxxForm是表單視圖。
希望它可以幫助任何人。
我已經做this..all ..我想留something..as我的控制器URL不能被重定向到登錄客人網址..我用用命令資源控制器 – harish
所以是一個路由問題產生控制器?也許你需要自定義路線? –
路線::組([ '前綴'=> '用戶'],函數(){ 路線::得到( '/',[ '用途'=> 'UserController中@索引']); 路線::匹配(['get'],'/ logout',['uses'=>'UserController @ logout']); Route :: match(['post','get'],'/ login',['uses '=>'UserController @ login']); Route :: match(['post','get'],'register',array('uses'=>「UserController @ register」)); Route :: get('/ profile',array('uses'=>「UserController @ profile」)); }); – harish