2015-11-26 10 views
-1

Я пробовал искать Google и пытался несколько методов. Ни один из них не работает: auth::attempt все еще возвращает false. Мой регистрационный код приведен ниже; в моем AuthController у меня есть:Laravel Auth :: попытка всегда возвращает false

protected function create(array $data) 
{ 
    $datetime = new \DateTime(); 
    $datetime->format('Y-m-d H:i:s'); 
    $datetime->getTimestamp(); 

    return User::create([ 
     'country_id' => 1, // default to malaysia 
     'user_name' => $data['user_name'], 
     'facebook_id' => null, 
     'steam_link' => null, 
     'password' => Hash::make($data['password']), 
     'extra_information' => null, 
     'remember_token' => null, 
     'email' => $data['email'], 
     'status_id' => 1, // active 
     'is_verified' => false, // false 
     'user_type_id' => 2, // normal user 
     'account_status_id' => 1, // pending 
     'confirmation_code' => str_random(30), 
     'created_at' => $datetime 
    ]); 
} 

public function postRegister(Request $request) 
{ 
    $validator = $this->validator($request->all()); 

    if ($validator->fails()) { 
     $this->throwValidationException(
      $request, $validator 
     ); 
    } 

    $user = $this->create($request->all()); 

    Mail::send('emails.registration_verification', ['user' => $user], function ($m) use ($user) 
    { 
     $m->from('[email protected]', 'www.myapps.com'); 
     $m->to($user->email, $user->user_name)->subject('Verify your myappsaccount.'); 
    }); 

    return view('auth.registration_success')->with('user_name',$user->user_name)->with('email', $user->email); 
} 

public function emailVerification($confirmation_code) 
{ 
    if (!$confirmation_code) 
    { 
     return Redirect::route('/errors/500'); 
    } 

    $user = User::whereConfirmationCode($confirmation_code)->first(); 

    if (!$user) 
    { 
     return Redirect::route('/errors/500'); 
    } 

    $user->account_status_id = 2; // active 
    $user->confirmation_code = null; 
    $user->save(); 

    return view('auth.verification_success')->with('user',$user); 
} 

public function postLogin(Request $request) 
{ 
    $userdata = array(
     'email' => $request->email, 
     'Password' => $request->password 
    ); 

    if (Auth::attempt($userdata,true)) { 
     echo 'test'; 
    } 
    else { 
     var_dump($userdata); 
    } 
} 

Я хэшируются свой пароль, соответственно, я также изменил столбец пароля от 60 до 255, но до сих пор не удается Войти.

Ожидаемый рабочий процесс - это регистры пользователей, система отправляет им электронное письмо для проверки. Пользователь нажимает на ссылку в письме, которое вызовет метод emailVerification. По завершении проверки пользователь должен войти в систему.

Я ничего не пропустил?

+1

Я не уверен, но вы пытались сменить ключ «Пароль» на «пароль» (все строчные буквы)? –

+0

Он должен быть строчным, а столбец пароля должен содержать только 60 символов. –

+0

Привет ... пароль все в нижнем регистре ... –

ответ

1

Я уверен, что ваша ошибка здесь:

$userdata = array(
     'email' => $request->email, 
     'Password' => $request->password 
); 

password поле в базе данных в нижнем регистре и вы проверяете тот, который начинается с заглавной буквы P. Измените 'Password' => $request->password на 'password' => $request->password, и он должен работать.

+0

привет, я изменил «Пароль» на «пароль», он все еще не прошел. –

0

мой плохой, включенный следующий код в пользовательской модели поможет мне решить проблему.

public function getAuthPassword() 
    { 
     return $this->password; 
    } 
Смежные вопросы