分享

laravel中的 Hash::make与Hash::check做登陆验证和密码加密

 中间件 2022-08-09 发布于浙江

1.使用前先引用

use Illuminate\Support\Facades\Hash;

2.加密

$pwd = Hash::make($request->newPassword);    //加密存储

3.匹配

  1. if (Hash::check('qwe123456', $pwd)) {
  2. // 密码匹配...
  3. }

 

举例代码:

  1. //手机邮箱登录
  2. public function index(Request $request)
  3. {
  4. $account= request('account');
  5. $password = request('password');
  6. $user = WechatAccount::where('phone',$account)->orwhere('email',$account)->first()->toarray();
  7. if($user){
  8. if (Hash::check($password, $user->password) || $user->password == md5($password)) {
  9. Redis::hdel('wechat_token:' . $user->wechat_token, 'WechatInfo');
  10. $tokenKey = str_random(64);
  11. $user->login_ip = $request->ip();
  12. $user->login_time = time();
  13. $user->wechat_token = $tokenKey;
  14. unset($user->password);
  15. if ($user->save()) {
  16. unset($user->wechat_token);
  17. if (Redis::hmset('wechat_token:' . $tokenKey, ['WechatInfo' => $user]) == 'OK' && Redis::expire('wechat_token:' . $tokenKey, 7200)) {
  18. $vdata = [
  19. 'status' => 1,
  20. 'msg' => '登录成功',
  21. 'wechat_token' => $tokenKey
  22. ];
  23. }
  24. }
  25. } else {
  26. $vdata = [
  27. 'status' => -1,
  28. 'msg' => '密码错误,请重新输入',
  29. ];
  30. }
  31. }else{
  32. $vdata = [
  33. 'status'=>-1,
  34. 'msg' => '您需要注册后,才可以登录呦!',
  35. ];
  36. }
  37. return response()->json($vdata);
  38. }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多