2016-05-11 7 views
1

Я являюсь абсолютным новичком в Laravel. В настоящее время я использую Laravel 5.0.Laravel 5.0 :: Невозможно войти в систему после смены пароля

У меня возникли проблемы при входе в систему после того, как я обновил пароль на странице сброса пароля по умолчанию.

Все должно работать так, как я его работаю. После того как я сбросил пароль, я увидел, что пароль обновлен в базе данных; электронная почта и ссылка для сброса пароля отправляются на назначенный адрес электронной почты. Однако я не могу войти в систему с новым паролем, который только что обновлен.

Если кто-либо сталкивался с такой проблемой, не могли бы вы рассказать мне какие-то советы?

Английский не является моим первым языком, поэтому, если этот вопрос не имеет смысла для вас или вам нужна дополнительная информация, оставьте свои комментарии! Любой совет будет оценен! Заранее спасибо!

Route.php

// Password reset link request routes... 
Route::get('password/email', 'Auth\[email protected]'); 
Route::post('password/email', 'Auth\[email protected]'); 

// Password reset routes... 
Route::get('password/reset/{token}', 'Auth\[email protected]'); 
Route::post('password/reset', 'Auth\[email protected]'); 

PasswordController.php

<?php namespace App\Http\Controllers\Auth; 

use App\Http\Controllers\Controller; 
use Illuminate\Contracts\Auth\Guard; 
use Illuminate\Contracts\Auth\PasswordBroker; 
use Illuminate\Foundation\Auth\ResetsPasswords; 

class PasswordController extends Controller { 
    use ResetsPasswords; 

    public function __construct(Guard $auth, PasswordBroker $passwords) 
    { 
     $this->auth = $auth; 
     $this->passwords = $passwords; 

     $this->middleware('guest'); 
    } 

} 
+3

Убедитесь, что вы не дважды храните свои пароли при обновлении. Например, 'ResetsPasswords :: resetPassword' уже вызывает' bcrypt() '. Поэтому, если вы также вызываете 'bcrypt' или какой-либо другой хеш, тогда вы будете хэшировать пароль дважды. – tptcat

+0

Я проверил, если некоторые коды дублируют функцию bcrypt(), как вы мне сказали. Затем я удалил одну функцию bcrypt(), и все работает так, как я ее хочу! Спасибо вам большое, tptcat! – ILoveBaymax

+0

Рад это слышать! – tptcat

ответ

0

То же самое случилось со мной однажды. У меня есть форма на моей частной части сайта, где пользователи могут изменять адрес электронной почты, имя и пароль.

Для сохранения этого пароля вместо делать это только на форме я добавил mutator так:

/** 
* Hash password on save 
* @param $value 
*/ 
public function setPasswordAttribute($value) { 
    $this->attributes['password'] = bcrypt($value); 
} 

Проблема заключается в том, что для изменения пароля использовать модель пользователя и пароль получить удвоим хэшируются, как @tptcat прокомментировал.

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