with twostep

This commit is contained in:
2025-11-06 22:56:54 +03:00
parent 4b9e8805bc
commit c18c7a0128
2 changed files with 44 additions and 0 deletions

27
auth.py Normal file
View File

@ -0,0 +1,27 @@
import asyncio
from jsoner import json_read_async
from models import UdidInfo
from wrapper import IPAToolClient
async def main():
json_data = await json_read_async("info.json")
for udid, value in json_data.items():
info = UdidInfo(**value)
client = IPAToolClient(info.host, info.port)
if not await client.auth(info.user, info.pswd):
print(udid, "no auth response")
continue
print(udid, "auth success")
if not client.auth_check(info.user):
code = input(f"Enter the code for {udid}: ")
if not await client.auth_twostep(info.user, info.pswd, code):
print(udid, "no twostep response")
continue
print(udid, "twostep success")
if __name__ == "__main__":
asyncio.run(main())

View File

@ -36,6 +36,23 @@ class IPAToolClient(BaseAsyncClient):
return json_data
return False
async def auth_twostep(self, user: str, pswd: str, code: str):
r = await self._post(
"/auth/twostep",
params={
"user": user,
"pswd": pswd,
"code": code,
"keychain": pswd,
},
)
if r.status != 200:
return False
json_data = await r.json()
if isinstance(json_data, bool):
return json_data
return False
async def app_info(self, query: str, limit: int, keychain: str) -> dict:
r = await self._post(
"/app/search",