php - 验证不起作用 Laravel 对 bcrypted 密码的自定义身份验证
问题描述
我创建了一个注册系统,其中密码以 bycript 形式存储。但是当我试图验证登录目的时,它说的是错误的密码。我的身份验证代码如下:
public function authenticate(Request $request){
$email=$request->post('email');
$password=$request->post('password');
$result=Admin::where(['email'=>$email,'password'=>$password])->get();
if(isset($result['0']->id)){
$request->session()->put('ADMIN_LOGIN',true);
$request->session()->put('ADMIN_ID',$result['0']->id);
return redirect('admin');
}else{
$request->session()->flash('error','Please enter valid login details');
return redirect('admin-login');
}
}
解决方案
您必须通过电子邮件找到管理员,如下所示:
$admin = Admin::where(['email'=>$email])->first();
然后比较哈希
if ($admin && Hash::check($admin->password, $password)) {
// ... logged in
} else {
// ... not legged in
}
推荐阅读
- windows - 安装 mod_wsgi 时出错:需要 Microsoft VS++ 14.0
- vue.js - 如何使用 Vue-router 更改状态码?
- shell - 为什么我在 Ubuntu 16.04 上以 root 身份登录时 Golang 环境变量不断消失?
- python - 如何将元组转换为数据框
- google-chrome-extension - 如何在 Chrome 网上应用店中等待审核时更新扩展程序?
- html - 如何允许水平滚动背景图像?
- javascript - 单击 React 后,单选按钮的状态将不会保留
- powershell - 如何使用 WMI 获取 dhcp 租约到期时间?
- excel - 如何使用 Officejs 在自定义函数中使用参数
- firefox - 检查网络响应是来自服务器还是 Firefox 缓存