我正在开发一个销售系统,每个用户都有一个帐户。要对用户进行身份验证,我使用bcrypt存储密码,并使用Laravel Auth库,如下所示:
$data = $request->only('user', 'password');
if (\Auth::attempt($data)){
#redirect dashboard
}
在销售点屏幕中,用户可以添加需要PIN的特殊产品(PIN是某些具有权限的用户的密码)。
当我拨打一个按钮点击以保存销售时,在我的Request类中我添加了这个验证(我只需要检查是否有一些特殊产品,如果,检查必须在DB中匹配的PIN),我使用这段代码:
$allowed_pin = true;
foreach (Request::get('products') as $product) {
if($product["special_perm"] === "1"){
$pin = $product["pin"];
$user = User::where('password', '=', bcrypt($pin))->first();
if ($user) {
$allowed_pin = true;
} else {
$allowed_pin = false;
}
}
}
问题是当我在Request类中比较密码时,如果我使用dd()它会告诉我" $ 2y $ 10 $ AasS5 / FTWv28PmYuABfqve4Ao6m1U9zxdUE6ZoHJWcfpn19sd4wcG"数据库中的真实密码是" $ 2y $ 10 $ DmefHppecIjuanjRbcj82OPyjhi.L0 / 4YGd62LYCvkDTGjXxL25fG" 他们没有匹配。 Auth类是否使用与bcrypt不同的内部加密?