2024-01-27 00:06:38 +08:00
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
import typing
|
|
|
|
|
|
|
|
|
|
|
2025-04-29 17:24:07 +08:00
|
|
|
class TokenManager:
|
|
|
|
|
"""鉴权 Token 管理器"""
|
2024-01-27 00:06:38 +08:00
|
|
|
|
2025-03-17 22:03:09 +08:00
|
|
|
name: str
|
2024-01-27 00:06:38 +08:00
|
|
|
|
|
|
|
|
tokens: list[str]
|
|
|
|
|
|
|
|
|
|
using_token_index: typing.Optional[int] = 0
|
|
|
|
|
|
2025-03-17 22:03:09 +08:00
|
|
|
def __init__(self, name: str, tokens: list[str]):
|
|
|
|
|
self.name = name
|
2024-01-27 00:06:38 +08:00
|
|
|
self.tokens = tokens
|
|
|
|
|
self.using_token_index = 0
|
|
|
|
|
|
|
|
|
|
def get_token(self) -> str:
|
|
|
|
|
return self.tokens[self.using_token_index]
|
2025-04-29 17:24:07 +08:00
|
|
|
|
2024-01-27 00:06:38 +08:00
|
|
|
def next_token(self):
|
|
|
|
|
self.using_token_index = (self.using_token_index + 1) % len(self.tokens)
|