LoginService.php 1.2 KB

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