Skip to main content

migate is a simplified Xiaomi authentication gateway for Python projects

Project description

migate

Xiaomi authentication gateway for Python


Version Changelog


Install

pip install migate

Or add it as a dependency in your project:

# pyproject.toml
dependencies = ["migate"]
# requirements.txt
migate

Usage

import migate

# --- passport (default) ---
# If no params are passed, sid defaults to passport.
# pass_token = migate.get_passtoken()
# service = migate.get_service(pass_token)

# --- unlockApi: bootloader unlock ---
# params = {"sid": "unlockApi", "checkSafeAddress": True}

# --- xiaomiio: Mi Home / smart home devices ---
# params = {"sid": "xiaomiio"}

# --- micoapi: Mi AI speaker ---
# params = {"sid": "micoapi"}

# --- i.mi.com: Mi Cloud / Find Device ---
# params = {"sid": "i.mi.com"}

# --- 18n_bbs_global: Mi Community ---
# params = {"sid": "18n_bbs_global"}

params = {"sid": "unlockApi", "checkSafeAddress": True}

pass_token = migate.get_passtoken(params)
# skip the interactive prompt if already logged in
# pass_token = migate.get_passtoken(params, silent=True)

service = migate.get_service(pass_token, params)

print(pass_token)
# {
#   "deviceId":  "wb_...",
#   "passToken": "...",
#   "userId":    "..."
# }

print(service)
# {
#   "servicedata": {
#     "nonce":     ...,
#     "ssecurity": "...",
#     "cUserId":   "...",
#     "psecurity": "...",
#     "deviceId":  "wb_..."
#   },
#   "cookies": {
#     # passport       -> {}
#     # unlockApi      -> serviceToken, unlockApi_slh, unlockApi_ph, userId
#     # xiaomiio       -> serviceToken, cUserId, userId
#     # micoapi        -> serviceToken, micoapi_slh, micoapi_ph, userId
#     # i.mi.com       -> serviceToken, i.mi.com_slh, i.mi.com_ph, userId
#     # 18n_bbs_global -> serviceToken, popRunToken, new_bbs_serviceToken, new_login, userId
#   }
# }

All functions return None on failure. Always check the return value before passing it to the next call.


Utilities

# get account region 
region = migate.get_region(pass_token)

# get dataCenterZone
## get with account region
zone = migate.get_dataCenterZone(region)
## get with account ID
zone = migate.get_dataCenterZone(userId)
## manual selection
zone = migate.get_dataCenterZone()

# get uRegion
uRegion = migate.get_uRegion()

# get uLocale
uLocale = migate.get_uLocale() 

# areaConfig, ex: with SG
area = migate.get_areaConfig("SG")
# {"code": "SG", "name": "Singapore", "dial": "+65"}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

migate-1.1.8.tar.gz (14.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

migate-1.1.8-py3-none-any.whl (18.6 kB view details)

Uploaded Python 3

File details

Details for the file migate-1.1.8.tar.gz.

File metadata

  • Download URL: migate-1.1.8.tar.gz
  • Upload date:
  • Size: 14.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for migate-1.1.8.tar.gz
Algorithm Hash digest
SHA256 7a7df88990314eab8ad9b19febdf4bf3d6368ca17f4294446998d47137892633
MD5 bb46d41e5a1f6a240b47832d8f211ad1
BLAKE2b-256 af481cb6c11b9ad5c0f64c1847226ade84a1a6c255c1f4f1dbbfb98323683aea

See more details on using hashes here.

File details

Details for the file migate-1.1.8-py3-none-any.whl.

File metadata

  • Download URL: migate-1.1.8-py3-none-any.whl
  • Upload date:
  • Size: 18.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for migate-1.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 993efd0796dfcf2fd313a6ba7a04a80dbf38245684f5ffa98caa0ce38aa15acb
MD5 147e4f73ead960a54392c8a71aca7ed1
BLAKE2b-256 3f3b45de2421d91254a12f013b2e0f5a3857f964d9f2d90dd103f287e702974d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page