为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel旧方法不返回密码值

Laravel旧方法不返回密码值

PHP
皈依舞 2021-05-02 21:21:07
我目前正在学习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>为了便于阅读,我从输入文件中删除了所有标签,类和ID。看来Laravel不会“想要”使用旧密码填充输入字段。我认为这是事实,是因为用户名和电子邮件都可以,但是两个密码字段都不能。每当我将密码字段更改为文本字段并将名称从密码更改为“ asdasd”之类的方法时,它就可以正常工作。我的问题是:我的理论是否正确?如果正确,为什么Laravel会这样做?与安全相关吗?提前致谢!我查看了该方法的文档,old但未提及任何密码。
查看完整描述

2 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

Laravel故意阻止password和阻止password_confirmation。通常,最好不要将密码返回给用户。它在异常处理程序中执行此操作。

如果你真的想包括它,更新您的app/Exceptions/Handler.php文件以删除passwordpassword_confirmationdontFlash阵列。


查看完整回答
反对 回复 2021-05-14
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

对,那是正确的。它与安全性有关。password是一种特殊的字段类型,因此,它既不应显示该值,也不应使用旧值填充该字段。实际上,出于安全原因,我强烈建议您不要覆盖此默认行为。

另一方面,根据设置,您的浏览器可能会为您存储和预填充密码字段。


查看完整回答
反对 回复 2021-05-14
  • 2 回答
  • 0 关注
  • 179 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信