Laravel 5.2 登录不会保留


Laravel 5.2 login does not persist

在我的laravel应用程序中,我执行了php artisan make:auth,并且创建了所有文件以使身份验证工作。

我的身份验证控制器.php代码:

     /**
     * Where to redirect users after login / registration.
     *
     * @var string
     */
    protected $redirectTo = '/';
    protected $loginPath = '/login';
    protected $username = 'username';
    /**
     * Create a new authentication controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware($this->guestMiddleware(), ['except' => 'logout']);
    }
    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return 'Illuminate'Contracts'Validation'Validator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'username' => 'required|max:255|unique:users',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|min:6|confirmed',
        ]);
    }
    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        return User::create([
            'username' => $data['username'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'hash-confirm' => md5($data['username']+Carbon::now()->resetToStringFormat()),
        ]);
    }
}

我的用户.php:

   /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'username', 'email', 'password', 'hash-confirm',
    ];
    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password', 'remember_token',
    ];

我的路线.php:

Route::auth();
Route::get('/', 'HomeController@index');
Route::get('create', 'MessageController@create');

问题是,如果我输入了错误的用户名和密码,它会告诉我这是错误的,当它正确时它会重定向我,但是当我登录后到达页面时,Auth::guest() 是真的,Auth::user() 是空的,所以会话没有创建。我使用最新版本的 laravel,所以我不需要将中间件"web"组放在路由上。

谢谢。

对于那些有相同问题的人,将用户表的"id"字段更改为:

$table->increments("id");

我必须$table->string("id")才能自己生成 ID,但它没有保留登录。