Laravel 4身份验证不起作用,并且没有错误

时间:2014-12-28 13:52:08

标签: authentication laravel login blade

我一直在寻找解决方案并来回更改我的代码,但没有任何方法可以帮助我,我老实说已经放弃了希望自己修复它。 它保留在同一页面上而不是Redirect::to('test2'),但保留在同一页面中,当我删除else { return Redirect::to('login')时,它会给我一个空白页面。 任何帮助都将非常感激。

这是我的用户模型文件:

protected $fillable=['email', 'password'];

    protected $table = 'users';

    protected $hidden = array('password', 'remember_token');

    protected $primaryKey = 'id';

    public static $rules = array(
        'email' => 'required|email',
        'password' => 'required',
    );

    public function getAuthIdentifier()
    {
        return $this->getKey();
    }

    public function getAuthPassword()
    {
        return $this->password;
    }

    public function getReminderEmail()
    {
        return $this->email;
    }

这是我的路由功能:

Route::get('/login', function(){
    return View::make('login');
});

Route::post('/login',  function(){
    $validator = Validator::make(Input::all(), User::$rules);
    if ($validator->fails()) {
        return Redirect::to('login')
            ->withErrors($validator) 
            ->withInput(Input::except('password')); 
    } else {
        $userData = array(
            'email'     => Input::get('email'),
            'password'  => Input::get('password')
        );
        if (Auth::attempt($userData)) {
            return Redirect::to('test2');
            echo 'SUCCESS!';
        } else {
            return Redirect::to('login');
        }
    }

1 个答案:

答案 0 :(得分:0)

开始时我一直在努力解决这个问题 1.如果密码栏的长度不是60,那么它就不允许您登录。<​​br/> 2.在通过Auth :: attempt()进行日志记录之前,尝试使用其用户名获取用户的数据 然后使用Hash :: check()比较密码 尝试一下这个

  Route::post('/login',  function(){
  $validator = Validator::make(Input::all(), User::$rules);
 if ($validator->fails()) {
    return Redirect::to('login')
        ->withErrors($validator) 
        ->withInput(Input::except('password')); 
 } else {

 $email=Input::get('email');
 $user=User::where('email','=',$email)->first();
 $bool=Hash::check('your password for the email',$user->password);
 if(bool)
    {
      if (Auth::attempt(Input::only('email','password')))
       {
          return Redirect::to('test2');
          echo 'SUCCESS!';
       }else{
         return Redirect::to('login');
       }
   }else{
    return echo 'password didn't matche';
  }
}