EmailLogin.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace app\validate\api\user;
  3. //邮箱密码登录验证器
  4. use app\model\Member;
  5. use laytp\library\Str;
  6. use think\Validate;
  7. class EmailLogin extends Validate
  8. {
  9. //数组顺序就是检测的顺序,比如这里,会先检测code验证码的正确性
  10. protected $rule = [
  11. 'email' => 'require|email',
  12. 'password' => 'require|length:6,26|checkPassword:',
  13. ];
  14. //定义内置方法检验失败后返回的字符
  15. protected $message = [
  16. 'email.require' => '邮箱不能为空',
  17. 'email.email' => '邮箱格式不正确',
  18. 'password.require' => '密码不能为空',
  19. 'password.length' => '密码长度需要6到26个字符',
  20. ];
  21. //自定义密码检验方法
  22. protected function checkPassword($password, $rule, $data)
  23. {
  24. $email = $data['email'];
  25. $user = new Member();
  26. $passwordHash = $user->getFieldByEmail($email, 'password');
  27. return (!Str::checkPassword($password, $passwordHash)) ? '账户信息错误' : true;
  28. }
  29. }