Laravel 身份验证无效且永远不会 return 正确

Laravel Authentication not working and never return true

我是 Larave 的新手,我创建了一个无法使用的登录表单,我搜索了很多有关此问题的信息,但发现这些问题和答案对我不起作用:

  1. Question 1
  2. Question 2
  3. Question 3

我读了这 3 个问题,但还是没用:

这是我的 users 表:

id | username | password | remember_token | created_at | updated_at

1 | e@so.com| testpass1

这是我的用户型号:

    <?php
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
class User extends Eloquent implements UserInterface, RemindableInterface {
    use UserTrait, RemindableTrait;
    public static $auth_rules=[
        'email'=>'required|email',
        'password'=>'required|between:3,18'
    ];
    protected $hidden = array('password', 'remember_token');
}

这是我的路线:

Route::group(array('prefix'=>'admin','before'=>'Auth'),function(){
    Route::resource('posts','AdminPostsController', array('except'=>array('show')));
});

这是过滤器(Auth):

 Route::filter('Auth', function()
{
    if (Auth::guest())
    {
        if (Request::ajax())
        {
            return Response::make('Unauthorized', 401);
        }
        else
        {
            return Redirect::guest('admin/login');
        }
    }
});

这是 AdminAuthController,它将从登录路由发送数据到 AdminAuthController@postLogin:

  //This is postLogin method:
    public function postLogin(){
     //Showing username and password
      echo 'Username:'.Input::get('email').'<br/>';
     echo 'Password:'.Input::get('password').'<br />';

     //If username and password: return true
  dd(Auth::attempt(array('username'=>Input::get('email'),'password'=>Input::get('password')     )));
   }

这就是浏览器中的 Laravel return: http://i.stack.imgur.com/9cq61.png

您 table 中的密码需要 散列

您可以使用 Hash::make('password') 生成密码的哈希值。如果你想在开发中手动更新你的数据库,你可以使用 artisan tinker 来快速生成一个散列:

php artisan tinker
> echo Hash::make('your-secret-password');

复制输出并更新数据库中的密码字段。

注意 数据库字段需要至少 60 个字符长