拿到token
This commit is contained in:
@@ -40,6 +40,7 @@ class OAISession:
|
||||
- oai-did Cookie 管理(设备指纹)
|
||||
- 自动错误检测和异常抛出
|
||||
- 代理支持(HTTP/HTTPS/SOCKS5)
|
||||
- 登录获取 access_token
|
||||
"""
|
||||
|
||||
# OpenAI 相关域名
|
||||
@@ -89,6 +90,11 @@ class OAISession:
|
||||
|
||||
logger.info(f"Session initialized with oai-did: {self.oai_did}")
|
||||
|
||||
# 登录状态
|
||||
self.access_token: Optional[str] = None
|
||||
self.session_token: Optional[str] = None
|
||||
self.logged_in_email: Optional[str] = None
|
||||
|
||||
def _setup_headers(self):
|
||||
"""
|
||||
设置 HTTP 请求头,模拟真实 Chrome 浏览器
|
||||
@@ -288,6 +294,49 @@ class OAISession:
|
||||
except Exception as e:
|
||||
logger.warning(f"Error closing session: {e}")
|
||||
|
||||
async def login(self, email: str, password: str) -> Dict[str, Any]:
|
||||
"""
|
||||
使用邮箱密码登录,获取 access_token
|
||||
|
||||
参数:
|
||||
email: 登录邮箱
|
||||
password: 登录密码
|
||||
|
||||
返回:
|
||||
登录结果字典,包含:
|
||||
- status: 状态 (success/failed/...)
|
||||
- access_token: 访问令牌(成功时)
|
||||
- session_token: 会话令牌(成功时)
|
||||
- error: 错误信息(失败时)
|
||||
|
||||
示例:
|
||||
session = OAISession()
|
||||
result = await session.login("user@example.com", "password123")
|
||||
if result["status"] == "success":
|
||||
print(f"Access Token: {result['access_token']}")
|
||||
"""
|
||||
from core.login_flow import LoginFlow
|
||||
|
||||
flow = LoginFlow(self, email, password)
|
||||
result = await flow.run()
|
||||
|
||||
# 保存登录状态
|
||||
if result.get("status") == "success":
|
||||
self.access_token = result.get("access_token")
|
||||
self.session_token = result.get("session_token")
|
||||
self.logged_in_email = email
|
||||
logger.info(f"Session logged in as: {email}")
|
||||
|
||||
return result
|
||||
|
||||
def is_logged_in(self) -> bool:
|
||||
"""检查是否已登录"""
|
||||
return self.access_token is not None
|
||||
|
||||
def get_access_token(self) -> Optional[str]:
|
||||
"""获取当前的 access_token"""
|
||||
return self.access_token
|
||||
|
||||
def __enter__(self):
|
||||
"""支持 with 语句上下文管理"""
|
||||
return self
|
||||
|
||||
Reference in New Issue
Block a user