getToken($type, $params); $exp = (int)bcadd($tokenInfo['params']['exp'] - $tokenInfo['params']['iat'], 60, 0); $res = CacheService::setTokenBucket($tokenInfo['token'], ['token' => $tokenInfo['token'], 'exp' => $exp], (int)$exp); if (!$res) return self::setErrorInfo('保存token失败'); return $tokenInfo; } /** * 从令牌桶中删除token * @param string $token * @return bool * @throws InvalidArgumentException */ public static function delTokenBucket(string $token) { if (Cache::has($token)) { return Cache::delete($token); } return true; } /** * 用户登陆 * @param $account * @param $pwd * @return bool|SystemBadmin */ public static function login($account, $pwd) { $adminInfo = self::get(compact('account')); if (!$adminInfo) return self::setErrorInfo('登陆的账号不存在!'); if (!password_verify($pwd, $adminInfo['pwd'])) return self::setErrorInfo('账号或密码错误,请重新输入'); if (!$adminInfo['status']) return self::setErrorInfo('该账号已被关闭!'); event('SystemBAdminLoginAfter', [$adminInfo]); return $adminInfo; } }