外观
登录宿主账号
使用随附宿主应用的账号密码登录。成功后得到宿主会话,再调用宿主换票接口取得 IM Token。
POST /app/auth/login
调用方: 随附宿主应用 · 认证: 无需登录,流程中保留 PHPSID
登录前也可调用。涉及验证码或短信时,要在整个流程中保留同一个 PHPSID 会话。
请求参数
JSON Body
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
username | string | 是 | 登录账号,3–64 字符。以 Unicode 字母或数字开头,之后允许字母、数字、下划线、点、连字符。 |
password | string | 是 | 密码,6–72 字符。 |
captcha | string | 条件 | 条件必填。配置要求图形验证码时提交,4 位英文字母,不区分大小写;从同一 PHPSID 会话取得。 |
标有条件的必填项,只在相应操作或配置下需要提交。
请求示例
bash
curl 'https://example.com/app/auth/login' \
-b cookies.txt -c cookies.txt \
-H 'Content-Type: application/json' \
--data '{"username":"chenyue","password":"<填写账号密码>"}'使用说明
- 先读取应用配置,login_captcha=true 时先取得 login 场景验证码。
- 宿主会话与 IM Token 分开管理。浏览器保留 PHPSID Cookie;原生端可保存响应头 PHPSID,并在后续请求中使用同名请求头发送。
- 登录或换票后若响应给出新的 PHPSID,后续请求使用新值。
返回参数
成功响应的最外层字段如下。下面所有业务字段都位于 data 中。
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 0 表示成功;非 0 时查看 msg,不把 data 当成功结果使用。 |
msg | string | 成功通常为 ok,失败时为错误说明。 |
data | object | 本次请求的业务结果,字段见下表。 |
data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
user | HostUser | 当前登录用户资料。 |
app_name | string | 后台配置的应用名称。 |
返回示例
示例展示字段结构;ID、时间和资料仅作说明,请使用实际回包。
json
{
"code": 0,
"msg": "ok",
"data": {
"user": {
"id": "1024",
"user_id": "chenyue",
"username": "chenyue",
"nickname": "陈悦",
"avatar": "https://example.com/uploads/avatars/chenyue.jpg",
"signature": "一起发现沿途的风景",
"profile_updated_at": 1792301400000,
"ip_region": null
},
"app_name": "PopoIM"
}
}返回对象字段
数组中的每个对象使用同一套字段。点击名称跳到说明:
宿主用户资料(HostUser)
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | IM 内部用户 ID,以十进制字符串返回。调用用户相关接口时使用下面的 user_id。 |
user_id | string | 宿主系统提供的用户 ID,例如 chenyue;用于识别同一个人。 |
username | string | null | 可用于精确搜索的账号;没有设置时为 null。 |
nickname | string | 显示昵称。 |
avatar | string | 头像地址。 |
signature | string | 个性签名;未设置时为空字符串。 |
profile_updated_at | integer | 公开资料最后更新时间,Unix 毫秒时间戳。 |
ip_region | string | null | IP 属地展示文字;没有信息时为 null。 |
错误处理
账号密码错误为 3001,验证码错误为 3003,账号已停用为 3005。
先检查 HTTP 状态,再检查 code。业务失败可能仍为 HTTP 200;非 0 的 code 都不能当成功。完整错误码见请求约定。
