Python 后端提交
Python 后端(FastAPI + FastMCP + ...)的初始版本号设定为 0.1.0,这是 uv 在 pypriject.toml 里给我自动设置的,我觉得有道理。
This commit is contained in:
38
njupt_api/zhengfang/sso.py
Normal file
38
njupt_api/zhengfang/sso.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from njupt_api.baselib import PlayContextManager, logger
|
||||
|
||||
|
||||
class SSO(PlayContextManager):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
||||
async def login(self, username: str, password: str) -> bool:
|
||||
"""使用用户名和密码实现登录南邮统一身份验证。
|
||||
|
||||
Parameters:
|
||||
username: 用户名,学号,一般为一位大写字母+八位数字
|
||||
password: 密码
|
||||
|
||||
Returns:
|
||||
bool,表明判登录是否成功。
|
||||
"""
|
||||
await self.page.goto("http://i.njupt.edu.cn/")
|
||||
|
||||
await self.page.fill('input[name="username"]', username)
|
||||
await self.page.fill('input[type="password"]', password)
|
||||
await self.page.click('button[type="button"]')
|
||||
|
||||
await self.page.wait_for_load_state("networkidle")
|
||||
if "user-login" in self.page.url:
|
||||
logger.error(f"{username} | 登录失败,请检查学号和密码是否正确。")
|
||||
return False
|
||||
|
||||
logger.info(f"{username} | 登录南邮统一身份认证成功。")
|
||||
self.isLogin = True
|
||||
return True
|
||||
|
||||
async def goto_zf(self) -> None:
|
||||
sub_frame = self.page.frame_locator('iframe[name="iframe0"]')
|
||||
async with self.context.expect_event("page") as new_page_event:
|
||||
await sub_frame.locator('a[title="教务系统"]').click()
|
||||
self.page = await new_page_event.value
|
||||
return
|
||||
Reference in New Issue
Block a user