Je suis nouveau sur Laravel 5 et j'essaie de comprendre son processus Auth
. Je veux empêcher l'utilisateur d'accéder à certaines de mes pages à moins qu'il ne soit pas connecté. Essayer de faire avec Route:filter
mais cela ne fonctionne pas. Qu'est-ce que j'ai fait de mal?
Route::filter('/pages/mainpage', function()
{
if(!Auth::check())
{
return Redirect::action('PagesController@index');
}
});
Vous devez utiliser le auth
middleware . Dans votre itinéraire, ajoutez-le simplement comme ceci:
Route::get('pages/mainpage', ['middleware' => 'auth', 'uses' => 'FooController@index']);
Ou dans le constructeur de vos contrôleurs:
public function __construct(){
$this->middleware('auth');
}
vous pouvez le faire directement dans votre code de lame de cette façon
@if (!Auth::guest())
do this
@else
do that
@endif
utilisation
Auth::check()
plus ici https://laravel.com/docs/5.2/authentication#authenticating-users pour déterminer si l'utilisateur actuel est authentifié
Vous pouvez utiliser middleware
dans le contrôleur
public function __construct()
{
$this->middleware('auth');
}
public function create()
{
if (Auth::user()) { // Check is user logged in
$example= "example";
return View('novosti.create')->with('example', $example);
} else {
return "You can't access here!";
}
}
Route::get('example/index', ['middleware' => 'auth', 'uses' => 'example@index']);
si vous voulez un middleware d'authentification pour un seul itinéraire,
// Single route
Route::get("/awesome/sauce", "AwesomeController@sauce", ['middleware' => 'auth']);
si vous voulez un auth middlesware sur plusieurs routes, utilisez:
// Route group
Route::group(['middleware' => 'auth'], function() {
// lots of routes that require auth middleware
});