2014-04-29 3 views
0

Je tente de créer une application de type page unique avec Laravel 4. Lorsque l'utilisateur arrive sur le site, il doit être invité à se connecter. Une fois l'utilisateur connecté, la vue (et non la URL) changera et l'utilisateur pourra voir les informations comme si elles étaient authentifiées.Laravel Auth Rediriger vers la page précédente

Mon HTML (si authroized devrait afficher "auth" dans h1, sinon, il montre formulaire de connexion)

<div class="container"> 
     @if(Auth::check()) 
      <h1>Auth</h1> 
     @else 
      {{ Form::open(array('url'=>'login', 'method'=>'post')) }} 
      <div class="row"> 
       <div class="col-xs-12"> 
        <div class="form-group"> 
         {{ Form::label('email', 'Email Address') }} 
         {{ Form::text('email', Input::old('email'), array('class'=>'form-control', 'placeholder'=>'[email protected]')) }} 
        </div> 
       </div> 
      </div> 
      <div class="row"> 
       <div class="col-xs-12"> 
        <div class="form-group"> 
         {{ Form::label('password', 'Password') }} 
         {{ Form::password('password', array('class'=>'form-control')) }} 
        </div> 
       </div> 
      </div> 
      <div class="row"> 
       <div class="col-xs-12"> 
        {{ Form::submit('Log In', array('class'=>'btn btn-primary pull-right')) }} 
       </div> 
      </div> 
      {{ Form::close() }} 
     @endif 
    </div> 

Contrôleur

class SiteController extends BaseController { 

    public function getIndex() 
    { 
     return View::make('index'); 
    } 

    public function postLogin() { 
     $email = Input::get('email'); 
     $password = Input::get('password'); 
     if (Auth::attempt(array('email'=>$email, 'password'=>$password))) 
     { 
      return Redirect::route('index'); 
     } 
    } 

} 

Mon modèle utilisateur par défaut est livré avec Laravel 4. À partir de maintenant, je passe le Auth::attempt et obtenant le return Redirect::route('index');, mais le @if(Auth::check()) ne semble pas tirer. Au lieu de cela, il continue à me montrer la forme de connexion. Est-ce que je fais quelque chose de mal ici?

Répondre

0

Je ne vois rien de mal, mais vous devez être sûr de ce qui se passe, il semble que votre session authentifiée ne colle pas, mais pour être sûr que vous pouvez:

<?php 

class SiteController extends BaseController { 

    public function getIndex() 
    { 
     Log::info('index - authed: '. Auth::check() ? 'yes' : 'no'); 

     return View::make('index'); 
    } 

    public function postLogin() { 
     $email = Input::get('email'); 

     $password = Input::get('password'); 

     if (Auth::attempt(array('email'=>$email, 'password'=>$password))) 
     { 
      Log::info('postLogin - attempt successful'); 

      return Redirect::route('index'); 
     } 

     Log::info('postLogin - error on attempt'); 
    } 

} 

Et puis vérifiez votre logs:

php artisan tail 
+0

J'ai trouvé le problème! Ma colonne de base de données était définie sur 'userId' à la place de' id' et tout était éjecté. Je vous remercie! –

Questions connexes