2016-07-12 6 views
0

In meiner Laravel-Anwendung habe ich php artisan make: auth ausgeführt und alle Dateien wurden erstellt, um die Authentifizierung zu ermöglichen.Laravel 5.2 Login nicht persistent

Mein AuthController.php Code:

 /** 
    * 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()), 
     ]); 
    } 
} 

Mein User.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', 
    ]; 

Mein routes.php:

Route::auth(); 
Route::get('/', '[email protected]'); 
Route::get('create', '[email protected]'); 

Die Sache ist die, dass, wenn ich den Benutzernamen setzen und falsches Passwort es sagt mir, dass es falsch ist, wenn es richtig ist, leitet es mich um, aber wenn ich nach dem Login auf die Seite komme, ist die Auth :: guest() ist wahr und Auth :: user() ist null, daher wird die Sitzung nicht erstellt. Ich benutze die neueste Version von Laravel, also muss ich die Middleware "Web" -Gruppe nicht auf die Routen setzen.

Danke.

+0

Einmal eingeloggt, was "return \ Auth :: user();" in Ihrer Index-Methode (Heim-Controller) zurück? –

+0

In der Tat die Rückkehr des Benutzers angemeldet. '$ lang = substr (Request :: Server ('HTTP_ACCEPT_LANGUAGE'), 0, 2); App :: setLocale ($ lang); Rückansicht ('index') -> mit ('menu', false); ' Dies ist, was in der Index-Methode ist. Und nach der Ausführung ist es eingeloggt. – markerstone

+0

Was versuchen Sie mit dem obigen Code? –

Antwort

0

die für das gleiche Problem ändern, um das „id“ Feld der Benutzertabelle an:

$table->increments("id"); 

Ich hatte $table->string("id") Lage zu sein, die ID selbst zu erzeugen, und es besteht nicht das Login.