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

Laravel 密码哈希验证

Laravel 密码哈希验证

PHP
米脂 2022-06-17 14:40:32
我在 Laravel 6.X 中编写了自定义用户系统。在我的登录控制器中,我有这个验证码:    $email = $request->email;    $validator = Validator::make($request->all(), [        'email' => 'bail|email|required|max:32|exists:users,email',        'password' => ['required','min:1','max:32',        function ($attribute, $value, $fail) {            $users = DB::table('users')->where('email', $email)->get(); // Get user info (Exception is in here)            if (hash('sha256', $value) !== $users[0]->Password) { // Check if hashed password equals                $fail($attribute.' is wrong.'); // If not equal then return error message            }        },    ],    ]);我使用 SHA256 哈希存储我的密码。如果密码不等于数据库密码,则向用户返回错误消息。但我得到一个例外“未定义的变量:电子邮件”。
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

看看这个答案:https ://stackoverflow.com/a/11086796/7897328 。我认为您需要使用use关键字。

你的代码:

function ($attribute, $value, $fail) {

带有use关键字的代码:

function ($attribute, $value, $fail) use ($email) {


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 104 浏览

添加回答

举报

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