用户可以在登录时更改密码一次,但是当我在视图中获取密码时,它会进行哈希处理,这是因为保存在数据库中的时间由bcrypt进行哈希处理。
所以我希望它在视图中具有用户输入的密码。
我的刀片代码:
<input class="form-control m-input" value="{{$staff->password}}"
type="password" name="password">
答案 0 :(得分:2)
你做不到。哈希是一种方式。 这就是为什么它是安全的,没有人能够知道密码是什么 - 只需用户知道它。
如果你想解码密码(什么是真正的不安全因素并被视为不良做法),你需要创建自己的编码方式。
另一种方法是简单地采用Response $response
这样的值:
public function functionName(Response $response) {
$password = $response->password
}
答案 1 :(得分:2)
你根本无法做到这一点,首先是因为要解密一个哈希密码,它非常复杂,有时甚至是不可能的,加上你想要做的不安全的事情,并会导致安全漏洞。
您可以在此博客流程帖子中了解散列密码的重要性:Why passwords should be hashed。
现在知道为什么必须在数据库中对密码进行哈希处理,当用户在变量或会话中的单个请求中更改密码时,您可以在问题中找到解决方案,这仍然不是一个好习惯但是这可能只是极端的解决方案。
如果要在视图中显示发布表单后键入的密码,可以将变量中的密码发送到控制器中的视图,如:
return view('view')->with('typed_password', $request->password);
在您的视图中,您可以使用以下方式打印:
{{ $typed_password }}
答案 2 :(得分:0)
您可能必须转到laravel bcrypts password的内置文件。转到该文件并删除bcrypt函数。
答案 3 :(得分:0)
这是不好的做法!
相反,您应该使用当前密码和新密码创建一个输入,最后重新输入密码以确认这种保护用户安全地编辑自己的密码的方法。
<form id="form-change-password" role="form" method="POST" action="{{ url('/user/credentials') }}" novalidate class="form-horizontal">
<div class="col-md-9">
<label for="current-password" class="col-sm-4 control-label">Current Password</label>
<div class="col-sm-8">
<div class="form-group">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="password" class="form-control" id="current-password" name="current-password" placeholder="Password">
</div>
</div>
<label for="password" class="col-sm-4 control-label">New Password</label>
<div class="col-sm-8">
<div class="form-group">
<input type="password" class="form-control" id="password" name="password" placeholder="Password">
</div>
</div>
<label for="password_confirmation" class="col-sm-4 control-label">Re-enter Password</label>
<div class="col-sm-8">
<div class="form-group">
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Re-enter Password">
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-5 col-sm-6">
<button type="submit" class="btn btn-danger">Submit</button>
</div>
</div>
</form>