2013-08-30 4 views
1

Je ne veux pas montrer la page de connexion après la connexion dans laravel 4. Si un utilisateur connecté veut visiter la page de connexion il devrait rediriger vers la page d'accueil ('/'). J'utilise Sentry pour l'authentification.Laravel 4 connexion redirection

filter.php

Route::filter(
    'auth', function() { 
    if (!Sentry::check()) { 
     return Redirect::to('login'); 
    } 
} 

routes.php

Route::get('login', array('as' => 'login', function() { 
return View::make('login'); 
}))->before('guest'); 

Route::post('login', '[email protected]'); 

AuthController.php

function postLogin() { 
    try { 
     // Set login credentials 
     $credentials = array(
      'email' => Input::get('email'), 'password' => Input::get('password') 
     ); 

     // Try to authenticate the user 
     $user = Sentry::authenticate($credentials, false); 
     if ($user) { 
      return Redirect::to('/'); 
     } 
    } catch (Cartalyst\Sentry\Users\LoginRequiredException $e) { 
     return Redirect::to('login')->withErrors('Login field is required'); 
    } 
} 

Après connexion réussie si, si la page de connexion est demandé, il affiche toujours la page de connexion

+0

Affichez votre filtre 'invité', s'il vous plaît. – ciruvan

+0

sa valeur par défaut. –

Répondre

5

Si oui u're en utilisant le filtre par défaut guest de Laravel, il ne fonctionnera pas, car le défaut guest filtre ne vérifie pas si l'utilisateur est connecté Sentry

Essayez ceci:.

Route::filter(
    'filter', function() { 
    if (Sentry::check()) { 
     return Redirect::to('/'); 
    } 
} 

Dans votre routes.php , le filtre est déjà appliqué à la route de connexion, donc les choses devraient fonctionner de cette façon.