Login.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <?php
  2. namespace App\Module\User\Validation;
  3. use App\Module\Ulogic\Validator\Model2Unit;
  4. use App\Module\User\Models\User;
  5. use UCore\ValidationCore;
  6. use App\Module\User\Validator\CanLogin;
  7. use App\Module\User\Validator\Username;
  8. /**
  9. * 登录验证器
  10. *
  11. */
  12. class Login extends ValidationCore
  13. {
  14. /**
  15. * @var \App\Module\Ulogic\Unit\User
  16. */
  17. public $userLogic;
  18. /**
  19. * 用户模型
  20. * @var User
  21. */
  22. public $user;
  23. public function rules($rules = []): array
  24. {
  25. return [
  26. [
  27. 'username,password', 'required'
  28. ],
  29. [
  30. 'username',
  31. new Username($this),
  32. 'msg' => '用户名密码错误'
  33. ],
  34. [
  35. 'password', 'passwd', 'msg' => '用户名密码错误'
  36. ],
  37. [
  38. 'username',
  39. new CanLogin($this),
  40. 'msg' => '不能登录'
  41. ],
  42. [
  43. 'username',
  44. new Model2Unit($this,['user','userLogic']),
  45. 'msg' => ''
  46. ]
  47. ];
  48. }
  49. /**
  50. * 密码验证
  51. *
  52. * @param $passwd
  53. * @return bool
  54. */
  55. public function passwdValidator($passwd): bool
  56. {
  57. return password_verify($passwd, $this->user->password);
  58. }
  59. }