Commit 5afcfd97 by baiquan

feat(login): 优化登录流程并获取 PHPSESSID

- 在登录流程中添加 PHPSESSID 获取逻辑
- 修改 wait_login_callback 函数返回 PHPSESSID
- 在登录成功后检查 PHPSESSID,如果没有则从 cookies 中获取
- 更新 set-cookie 解析逻辑,提取 PHPSESSID 并返回
parent 312ca9d4
......@@ -55,6 +55,7 @@ async def page_login(browser_id):
tab.listen.start(["account_login/v2/", "captcha/verify", "/aff/check_login", "/loginv1/callback"])
login_res = listen_check_login(tab)
logger.info(f"{browser_id}当前页面是否登录-->{login_res}")
PHPSESSID = ""
if not login_res:
retry = 0
while True:
......@@ -90,7 +91,7 @@ async def page_login(browser_id):
click_button(tab, ".auxo-checkbox") # 点击勾选框
click_button(tab, ".account-center-submit") # 点击登录按钮
listen_login(tab)
wait_login_callback(tab)
PHPSESSID = wait_login_callback(tab)
break
except ElementNotFoundError as e:
if tab.title == "首页":
......@@ -102,9 +103,12 @@ async def page_login(browser_id):
logger.error(f"{browser_id}-->{e}")
for _ in range(3):
if tab.title == "首页":
if not PHPSESSID:
cookies = tab.cookies().as_dict()
PHPSESSID = cookies.get('PHPSESSID', '')
set_token(tab)
tab.close()
return
return PHPSESSID
tab.wait(3)
raise AppError("登录失败-->未获取到token")
......@@ -135,7 +139,8 @@ def wait_login_callback(tab):
set_cookie = headers['set-cookie']
if "PHPSESSID" in set_cookie:
logger.info(f"响应的cookie --> {set_cookie}")
return
PHPSESSID = re.search(r'PHPSESSID=(.*?);', set_cookie).group(1)
return PHPSESSID
raise AppError("登录失败 --> 未获取到回调的cookie")
def listen_login(tab):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment