feat: 将 api_token 改为使用redis快速存取
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
|
||||||
|
from app.utils.redis_utils import redis_utils, remove_redis_cache
|
||||||
|
|
||||||
|
|
||||||
class ApiSecretStatus(Enum):
|
class ApiSecretStatus(Enum):
|
||||||
valid = "valid" # 秘钥有效
|
valid = "valid" # 秘钥有效
|
||||||
@@ -13,22 +15,23 @@ class ApiSecretUtils():
|
|||||||
|
|
||||||
# 验证秘钥状态
|
# 验证秘钥状态
|
||||||
async def verify_secret(self, secret: str) -> ApiSecretStatus:
|
async def verify_secret(self, secret: str) -> ApiSecretStatus:
|
||||||
api_secret_status = self.cache.get(secret, None)
|
async with redis_utils.get_redis_connection() as redis_client:
|
||||||
print("verify_secret", self.cache)
|
cache_value = await redis_client.get(f"api_secret_status_${secret}")
|
||||||
|
print("cache_value", cache_value)
|
||||||
|
|
||||||
|
api_secret_status = cache_value
|
||||||
|
print("verify_secret", api_secret_status, secret)
|
||||||
return api_secret_status or ApiSecretStatus.not_exist
|
return api_secret_status or ApiSecretStatus.not_exist
|
||||||
|
|
||||||
# 保存秘钥状态
|
# 保存秘钥状态
|
||||||
async def save_secret(self, secret: str, status: ApiSecretStatus):
|
async def save_secret(self, secret: str, status: ApiSecretStatus):
|
||||||
print("save_secret", self.cache)
|
print("save_secret", secret)
|
||||||
self.cache[secret] = status
|
async with redis_utils.get_redis_connection() as redis_client:
|
||||||
|
await redis_client.set(f"api_secret_status_${secret}", str(status))
|
||||||
|
|
||||||
# 移除秘钥缓存
|
# 移除秘钥缓存
|
||||||
async def remove_secret(self, secret: str):
|
async def remove_secret(self, secret: str):
|
||||||
# self.cache.pop(secret, None)
|
await remove_redis_cache(f"api_secret_status_${secret}")
|
||||||
if secret in self.cache:
|
|
||||||
del self.cache[secret]
|
|
||||||
print("remove_secret", secret)
|
|
||||||
print(await self.verify_secret(secret))
|
|
||||||
|
|
||||||
|
|
||||||
api_secret_utils = ApiSecretUtils()
|
api_secret_utils = ApiSecretUtils()
|
||||||
|
|||||||
Reference in New Issue
Block a user