Files
mihoyo-api-collect/hoyolab/login/qrcode_hoyolab.md
2023-09-01 21:07:27 +08:00

4.2 KiB
Raw Blame History

米游社扫码登入


扫码登录

操作步骤

  1. 生成二维码,记录返回data对象的url,和data对象的ticket字段(下称ticket)。
  2. 生成二维码供用户扫描。
  3. 不断查询二维码扫描状态。在用户扫描并确认登录后,获取header头里面全部的Set-Cookie

生成二维码

国服:

请求方式POST

需要特定请求头

X-Rpc-App_idbll8iq97cem8

X-Rpc-Device_id一个uuidv4

https://passport-api.miyoushe.com/account/ma-cn-passport/web/createQRLogin

JSON 返回:

根对象:

字段 类型 内容 备注
retcode num 返回码 -3001 Header头缺少参数
message str 返回消息
data obj 二维码指向的 URL

data对象:

字段 类型 内容 备注
url str 二维码指向的 URL 使用了 Unicode 转义
ticket str 查询扫码状态的参数
查看示例
{
  "retcode": 0,
  "message": "OK",
  "data": {
    "url": "https://user.mihoyo.com/login-platform/mobile.html?expire=1693555708\u0026tk=e8a6448c-6596-461c-884a-98fe84bd675b\u0026token_types=4#/login/qr",
    "ticket": "e8a6448c-6596-461c-884a-98fe84bd675b"
  }
}

查询二维码扫描状态

国服:

请求方式POST

需要特定请求头

X-Rpc-App_idbll8iq97cem8

X-Rpc-Device_id一个uuidv4

https://passport-api.miyoushe.com/account/ma-cn-passport/web/queryQRLoginStatus

JSON请求

字段 类型 内容 备注
ticket str 生成二维码时从返回的json中data.ticket字段的值

JSON返回

根对象:

字段 类型 内容 备注
retcode num 返回码
-3001 Header头缺少参数
-3501 二维码已过期
-3505 用户取消扫码
message str 返回消息
data obj 二维码状态

data对象:

字段 类型 内容 备注
app_id str 请求的app_id
client_type num 客户端类型
created_at str 创建时间戳
need_realperson bool
realname_info obj 确认之前为空
scanned_at str 扫码时间戳 扫描之前为空
status str 二维码状态
Created 未扫描
Scanned 已扫描
Confirmed 已确认
tokens list 一直为空
user_info obj 登入用户信息 确认之前为空
查看示例
// 未扫描
{
    "retcode": 0,
    "message": "OK",
    "data": {
        "status": "Created",
        "app_id": "bll8iq97cem8",
        "client_type": 4,
        "created_at": "1693555708",
        "scanned_at": "0",
        "tokens": [],
        "user_info": null,
        "realname_info": null,
        "need_realperson": false
    }
}

// 已扫描
{
    "retcode": 0,
    "message": "OK",
    "data": {
        "status": "Scanned",
        "app_id": "bll8iq97cem8",
        "client_type": 4,
        "created_at": "1693555708",
        "scanned_at": "1693555708",
        "tokens": [],
        "user_info": null,
        "realname_info": null,
        "need_realperson": false
    }
}

// 已过期
{
    "data": null,
    "message": "二维码已失效,请刷新后重新扫描",
    "retcode": -3501
}

//取消扫码
{
    "data": null,
    "message": "扫码登录已取消,重新生成二维码",
    "retcode": -3505
}

// 已确认
{
  "retcode": 0,
  "message": "OK",
  "data": {
    "status": "Confirmed",
    "app_id": "bll8iq97cem8",
    "client_type": 4,
    "created_at": "1693555708",
    "scanned_at": "1693555708",
    "tokens": [],
    "user_info": {"aid":"xxxx","mid":"xxxx".....},
    "realname_info": {
      "required": false,
      "action_type": "",
      "action_ticket": ""
    },
    "need_realperson": false
  }
}