跳至主要內容

米游社密码登录

UIGF-org大约 3 分钟

米游社密码登录


密码登录

操作步骤

  1. 获取设备指纹信息,记录返回data对象的device_fp
  2. 向服务器传入账号密码以获取登录信息,获取响应头中所有Set-Cookie。可获取的Cookie有:Account ID、MiHoYo id、LToken(V2)、特定Cookie Token。

获取设备指纹

国服:

请求方式:POST

https://public-data-api.mihoyo.com/device-fp/api/getFp

JSON请求:

字段类型内容备注
device_idstr设备ID
seed_idstr一般为随机值
seed_timestr当前的Unix时间戳
platformstr设备平台
1 iOS
2 安卓
4 网页
不同的设备平台需要在ext_fields字段中填写的的内容不同
device_fpstr设备指纹在此处可随机生成
app_namestr请求的应用标识符
bbs_cn 米游社
ext_fieldsstr一些设备信息为JSON字符串。若platform4,则必须包含userAgent字段;若platform2,则需要包含['cpuType', 'romCapacity', 'productName', 'romRemain', 'manufacturer', 'appMemory', 'hostname', 'screenSize', 'osVersion', 'aaid', 'vendor', 'accelerometer', 'buildTags', 'model', 'brand', 'oaid', 'hardware', 'deviceType', 'devId', 'serialNumber', 'buildTime', 'buildUser', 'ramCapacity', 'magnetometer', 'display', 'ramRemain', 'deviceInfo', 'gyroscope', 'vaid', 'buildType', 'sdkVersion', 'board']字段
查看示例
{
    "device_id": "2d356b22f39b708c",
    "seed_id": "d81de6f4-6aa3-4e5f-b8e8-6a4f98e15a76",
    "seed_time": "1692248006205",
    "platform": "2",
    "device_fp": "38d7efe8b7f79",
    "app_name": "bbs_cn",
    "ext_fields": "{
    \"cpuType\":\"arm64-v8a\",
    \"romCapacity\":\"512\",
    \"productName\":\"ishtar\",
    \"romRemain\":\"459\",
    \"manufacturer\":\"Xiaomi\",
    \"appMemory\":\"512\",
    \"hostname\":\"xiaomi.eu\",
    \"screenSize\":\"1440x3022\",
    \"osVersion\":\"13\",
    \"aaid\":\"a945fe0c-5f49-4481-9ee8-418e74508414\",
    \"vendor\":\"中国电信\",
    \"accelerometer\":\"0.061016977x0.8362915x9.826724\",
    \"buildTags\":\"release-keys\",
    \"model\":\"2304FPN6DC\",
    \"brand\":\"Xiaomi\",
    \"oaid\":\"67b292338ad57a24\",
    \"hardware\":\"qcom\",
    \"deviceType\":\"ishtar\",
    \"devId\":\"REL\",
    \"serialNumber\":\"unknown\",
    \"buildTime\":\"1690889245000\",
    \"buildUser\":\"builder\",
    \"ramCapacity\":\"229481\",
    \"magnetometer\":\"80.64375x-14.1x77.90625\",
    \"display\":\"TKQ1.221114.001 release-keys\",
    \"ramRemain\":\"110308\",
    \"deviceInfo\":\"Xiaomi/ishtar/ishtar:13/TKQ1.221114.001/V14.0.17.0.TMACNXM:user/release-keys\",
    \"gyroscope\":\"7.9894776E-4x-1.3315796E-4x6.6578976E-4\",
    \"vaid\":\"4c10d338150078d8\",
    \"buildType\":\"user\",
    \"sdkVersion\":\"33\",
    \"board\":\"kalama\"
  }",
    "bbs_device_id": "b66a6178-f56d-30ed-97aa-297560c98fc1"
}

JSON返回:

根对象:

字段类型内容备注
retcodenum返回码
-502 传入的内容有误
messagestr返回消息
dataobj设备指纹

data对象:

字段类型内容备注
device_fpstr设备指纹
codenum返回码
msgstr错误消息
查看示例
{
  "message": "OK",
  "retcode": 0,
  "data": {
    "code": 200,
    "device_fp": "ui33vcedffou",
    "msg": "ok"
  }
}

获取登录信息

国服:

请求方式:POST

需要验证请求头

x-rpc-app_idbll8iq97cem8

x-rpc-client_type2

x-rpc-game_bizbbs_cn

x-rpc-device_fp:刚获取的设备指纹

x-rpc-device_id:与上个步骤传递的设备ID相同

https://passport-api.mihoyo.com/account/ma-cn-passport/app/loginByPassword

JSON请求:

字段类型内容备注
accountstr将登录账户的绑定邮箱或绑定手机使用RSA + Base64加密,加密方式详见该页面
passwordstr将登录账户的密码使用RSA + Base64加密,加密方式详见该页面

JSON返回:

根对象:

字段类型内容备注
retcodenum返回码
messagestr返回消息
dataobj账号信息

data对象:

字段类型内容备注
login_ticketstrLogin Ticket在一些情况下没有该字段
need_realpersonstr是否要求用户进行实名认证
tokenobj该账户的SToken(V2)在一些情况下没有该字段
user_infoobj用户信息
reactivate_infoobj待调查
realname_infoobj待调查

data对象→user_info对象:

字段类型内容备注
account_namestr账号名称总是为空字符串
aidstrAccount ID
area_codestr账号所绑定的电话号码对应的国家区号
countrystr国家总是为空字符串
emailstr账号所绑定的邮箱
identity_codestr账号的实名认证身份证号
is_email_verifystr邮箱是否通过认证
1 已认证
0 未认证
linksstr第三方绑定信息
midstrMiHoYo ID
mobilestr账号的绑定手机
realnamestr账号的实名认证姓名

data对象→token对象:

字段类型内容备注
token_typenum1
tokenstrSToken(V2)
查看示例
{
  "data": {
    "login_ticket": "***",
    "need_realperson": false,
    "reactivate_info": {
      "required": false,
      "ticket": ""
    },
    "realname_info": {
      "action_ticket": "",
      "action_type": "",
      "required": false
    },
    "token": {
      "token": "***",
      "token_type": 1
    },
    "user_info": {
      "account_name": "",
      "aid": "311526738",
      "area_code": "+86",
      "country": "",
      "email": "**********",
      "identity_code": "******************",
      "is_email_verify": 1,
      "links": [
        {
          "email": "",
          "nickname": "***",
          "subType": "",
          "thirdparty": "tp",
          "union_id": "***"
        }
      ],
      "mid": "******",
      "mobile": "***********",
      "realname": "***",
      "rebind_area_code": "",
      "rebind_mobile": "",
      "rebind_mobile_time": "0",
      "safe_area_code": "",
      "safe_mobile": ""
    }
  },
  "message": "OK",
  "retcode": 0
}