LoginService.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace app\admin\service;
  3. use app\BaseService;
  4. use app\common\model\AdminModel;
  5. use think\facade\Session;
  6. class LoginService extends BaseService
  7. {
  8. private $adminModel;
  9. public function __construct()
  10. {
  11. $this->adminModel = new AdminModel();
  12. }
  13. public function login(string $username, string $password)
  14. {
  15. $admin = $this->adminModel->loadByLogin($username, md5($password));
  16. if($admin) {
  17. $token = \Jwt::getToken([
  18. 'iss'=>'jwt_admin', //该JWT的签发者
  19. 'iat'=>time(), //签发时间
  20. 'exp'=>time()+7200, //过期时间
  21. 'nbf'=>time(), //该时间之前不接收处理该Token
  22. 'jti'=>md5(uniqid('JWT').time()), //该Token唯一标识
  23. 'admin_id'=>$admin->id,
  24. 'account'=>$admin->account,
  25. 'nickname'=>$admin->nickname
  26. ]);
  27. if($token === false) return $this->fail('获取token失败!');
  28. $this->adminModel->refreshToken($admin->id,$token);
  29. Session::set('admin', $token);
  30. if(Session::get('admin'))
  31. return $this->ok(true);
  32. }
  33. return $this->fail('账号密码错误!');
  34. }
  35. }