2016-07-12 5 views
0

В моем приложении laravel я выполнил команду php artisan make: auth, и все файлы были созданы, чтобы сделать аутентификацию.Laravel 5.2 login не сохраняется

Мой AuthController.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()), 
     ]); 
    } 
} 

Мои 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', 
    ]; 

Мой routes.php:

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

Дело в том, что если я ставлю имя пользователя и неверный пароль говорит мне, что это неправильно, когда это правильно, он перенаправляет меня, но когда я добираюсь до страницы после входа в систему, Auth :: guest() true, и Auth :: user() имеет значение null, поэтому сеанс не создается. Я использую последнюю версию laravel, поэтому мне не нужно размещать промежуточную «веб-группу» на маршрутах.

Спасибо.

+0

После входа в систему, что означает «return \ Auth :: user();» в ваш индексный метод (домашний контроллер)? –

+0

Действительно вернуть пользователя вошел в систему. '$ lang = substr (Request :: server ('HTTP_ACCEPT_LANGUAGE'), 0, 2); App :: setLocale ($ lang); return view ('index') -> with ('menu', false); ' Это то, что находится в методе индекса. И после выполнения этого он вошел в систему больше. – markerstone

+0

Что вы пытаетесь сделать с вышеуказанным кодом? –

ответ

0

Для тех, кто имеет такую ​​же проблему, изменить поле «ID» таблицы пользователя в:

$table->increments("id"); 

я имел $table->string("id"), чтобы иметь возможность генерировать идентификатор себе и не сохраняются логин.

Смежные вопросы