diff --git a/yunke-server/app/session/login.py b/yunke-server/app/session/login.py index 3bada83..c0cf218 100644 --- a/yunke-server/app/session/login.py +++ b/yunke-server/app/session/login.py @@ -144,6 +144,7 @@ async def pc_login( username: str, password: str, secure_key: dict[str, Any], + company_code: str = "", ) -> LoginResult: """Call ``POST {base}/usercenter/login/pcLogin`` and parse a LoginResult. @@ -164,9 +165,13 @@ async def pc_login( httpx client's cookie jar — ``pcLogin``'s ``Set-Cookie`` lands there automatically. """ + # 真机抓包(2026-08-20 浏览器实登)确认的字段:phone/loginType/companyCode + # (旧 account 变体一直被拒"缺少登录参数") body = { - "account": username, + "phone": username, "password": encrypt_password(password, secure_key), + "loginType": "yunkecn", + "companyCode": company_code, } resp = await client.post("/usercenter/login/pcLogin", json=body) resp.raise_for_status() diff --git a/yunke-server/app/session/yunke_client.py b/yunke-server/app/session/yunke_client.py index b393de2..3831536 100644 --- a/yunke-server/app/session/yunke_client.py +++ b/yunke-server/app/session/yunke_client.py @@ -211,8 +211,14 @@ class YunkeClient: " client was constructed from an existing session." ) secure_key = await get_secure_key(self._client) + from app.config import get_settings + result = await pc_login( - self._client, self.username, self.password, secure_key + self._client, + self.username, + self.password, + secure_key, + company_code=get_settings().yk_company or "", ) self.login_result = result return result