Старый метод Laravel не возвращает значения пароля - PullRequest
1 голос
/ 23 апреля 2019

В настоящее время я изучаю Laravel и создаю регистрационную форму. Когда в форме есть ошибки, я хочу заполнить поля ввода их старыми значениями.

Моя форма выглядит так:

<form method="post" action="/users/store">
    @csrf
    <input type="text" name="username" value="{{ old('username') }}">
    <input type="email" name="email" value="{{ old('email') }}">
    <input type="password" name="password" value="{{ old('password') }}">
    <input type="password" name="password_confirmation" value="{{ old('password_confirmation') }}">
    <button class="btn btn-outline-warning" id="registerConfirm">Confirm</button>
</form>

Для удобства чтения я удалил все метки, классы и идентификаторы из входных файлов.

Похоже, что Laravel не «хочет» заполнять поля ввода старым паролем. Я считаю, что это правда, потому что имя пользователя и электронная почта работают, но оба поля пароля не работают. Всякий раз, когда я изменяю поля пароля на текстовые поля и , меняю имя с пароля на что-то вроде 'asdasd', оно работает.

Мой вопрос: верна ли моя теория, и если да, то почему Ларавел делает это? Это связано с безопасностью? Заранее спасибо!

Я посмотрел на документы для метода old, но он ничего не говорит о паролях.

Ответы [ 2 ]

5 голосов
/ 23 апреля 2019

Ларавел преднамеренно блокирует password и password_confirmation. Обычно рекомендуется не возвращать пароль пользователю. Это происходит в обработчике исключений.

Если вы действительно хотите включить его, обновите файл app/Exceptions/Handler.php, чтобы удалить password и password_confirmation из массива dontFlash.

2 голосов
/ 23 апреля 2019

Да, это правильно.Это связано с безопасностью. пароль - это специальный тип поля, поэтому он не должен отображать значение или заполнять поле старым значением.На самом деле, я настоятельно рекомендую не переопределять это поведение по умолчанию из соображений безопасности.

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

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