2014-10-17 136 views
4

嗨,那里我有问题与Laravel。我无法登录。我尝试了我在网上找到的所有内容。也许有人知道我犯了什么错误。创建新用户并发送电子邮件正常工作。登录我不知道像循环这样的工作回来查看没有错误或任何消息。我在laravel中使用调试模式,但没有显示任何错误。Laravel登录(身份验证::尝试)不工作

<?php 
    class AccountController extends BaseController { 

     //Sign in function start 

     public function getSignIn(){ 
      return View::make('account.signin'); 
     } 

     public function postSignIn(){ 
      $validator = Validator::make(Input::all(), 
       array(
        'email'     => 'required|email', 
        'username'   => 'required' 
       ) 
      ); 

      if($validator->fails()){ 

       return Redirect::route('account-sign-in') 
        ->withErrors($validator) 
        ->withInput(); 

      }else{ 

       if($auth = Auth::attempt(array(
        'email' => Input::get('email'), 
        'password' => Input::get('password'), 
        'active' => 1 

       ), true)){ 
        return Redirect::to('/'); 
       }else{ 
        return Redirect::route('account-sign-in') 
         ->with('global', 'Email/password wrong or account not activated'); 
       } 

      } 

      return Redirect::route('account-sign-in') 
       ->with('global', 'There was a problem signing you in'); 
     } 

     //Sign in function end 




     //Create new account function start 

     public function getCreate(){ 
      return View::make('account.create'); 
     } 

     public function postCreate(){ 
      $validator = Validator::make(Input::all(), 
       array(
        'email'     => 'required|max:50|email|unique:users', 
        'username'   => 'required|max:20|min:3|unique:users', 
        'password'   => 'required|min:6', 
        'password_again' => 'required|same:password' 
       ) 
      ); 


      if($validator->fails()){ 
       return Redirect::route('account-create') 
        ->withErrors($validator) 
        ->withInput(); 
      }else{ 

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

       //Activation code 

       $code  = str_random(60); 

       $user = User::create(array(
        'email'   => $email, 
        'username' => $username, 
        'password' => Hash::make($password), 
        'code'  => $code, 
        'active' => 0 

       )); 

       if($user){ 

        //Send link function start 

        Mail::send('emails.auth.active', array(
         'link' => URL::route('account-active', $code), 
         'username' => $username),function($message) use ($user){$message->to($user->email, $user->username)->subject('Activation your account');}); 

        //Send link function end 

        return Redirect::route('home') 
         ->with('global', 'Your account has been created! We have sent you an email with activation link'); 
       } 
      } 
     } 
     public function getActivate($code){ 
      $user = User::where('code', '=', $code)->where('active', '=', 0); 

      if($user->count()){ 
       $user = $user->first(); 

       //Update user to active state 

       $user->active = 1; 
       $user->code   =''; 

       if($user->save()){ 
        return Redirect::route('home') 
         ->with('global', 'Activated! You can now sign in!'); 
       } 
      } 
       return Redirect::route('home') 
        ->with('global', 'We could not activate your account. Please try again later.'); 


     } 

     //Create new account function end 

    } 

?> 
+0

你肯定形式发送POST请求,并没有得到 – 2014-10-17 23:52:07

回答

1

postSignIn()验证您指定username是当从我可以从你的逻辑和错误消息看,需要用户指定的电子邮件和登录密码要求。相反,尝试:

$validator = Validator::make(Input::all(), 
    array(
     'email'     => 'required|email', 
     'password'   => 'required' 
    ) 
); 

emailpassword提交登录表单,验证总是失败,因为没有username输入