API
接口一览
泽汐(Evetide)统一登录提供四个核心接口:授权、换 Token、取用户信息,以及 App 原生登录。Web 接入用前三个,iOS / Android / 桌面应用可用原生登录免浏览器直连。
接口列表
| 接口 | 说明 |
|---|---|
| GET https://login.evetide.cn/api_authorize.php | 授权入口(登录 / 注册 / 授权页都在这里) |
| POST https://login.evetide.cn/api_token.php | code 换 access_token(Basic 认证) |
| GET https://login.evetide.cn/api_userinfo.php | 获取用户信息(Bearer 认证) |
| POST https://login.evetide.cn/api_native_login.php | 原生登录(密码 / 验证码 / 快捷登录,免浏览器) |
原生登录 API(App 直连,免 WebView)
适用于 iOS / Android / 桌面 App:应用内直接登录,不打开浏览器。三种方式任选,成功后返回与网页登录一致的 access_token / refresh_token 与用户信息。
POST https://login.evetide.cn/api_native_login.php
① 邮箱 + 密码
{
"type": "password",
"client_id": "你的client_id",
"account": "user@example.com", // 用户名或邮箱
"password": "你的密码"
}
内置 IP + 账号限流(5 次 / 5 分钟),与网页登录一致。
② 邮箱 + 验证码
先调 api_send_code.php 发送登录验证码,再登录:
// 第一步:发送验证码
POST https://login.evetide.cn/api_send_code.php{ "email": "user@example.com", "method": "login", "captcha_token": "" }
// 第二步:验证码登录
POST https://login.evetide.cn/api_native_login.php{ "type": "email_code", "client_id": "你的client_id", "email": "user@example.com", "code": "123456" }
验证码 10 分钟有效、最多尝试 5 次;邮箱未注册时提示去注册。
③ 快捷登录(平台 SDK openid)
App 端用平台原生 SDK(微信 / QQ / 钉钉 / 飞书 / GitHub / Gitee)拿到 openid / unionid 后直接登录,无需浏览器:
{
"type": "social",
"client_id": "你的client_id",
"provider": "wechat", // wechat | qq | github | gitee | dingtalk | feishu
"provider_sub": "平台openid或unionid",
"nickname": "可选,首次建档时使用",
"avatar": "可选,头像 URL",
"email": "可选,填了会尝试关联已有账号"
}
首次登录自动建档(用户名 平台_xxx),再次登录命中同一账号。
统一响应
{
"code": 0,
"data": {
"access_token": "eyJ...",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "xxx",
"scope": "openid profile email",
"user": { "id": "...", "username": "...", "email": "...", "display_name": "...", "avatar_url": "..." }
}
}
之后用 Authorization: Bearer <access_token> 调 GET https://login.evetide.cn/api_userinfo.php 获取用户资料;token 过期用 refresh_token 在 api_token.php 续期。
限流与错误码
- 应用级限流:每个应用(client_id)默认 100 次 / 分钟,超出返回
HTTP 429(可联系平台调整额度)。 400参数缺失 / 邮箱未注册 / 验证码错误或已过期 / 不支持的登录方式401密码错误、账号不存在或已禁用、client 无效403应用未启用、应用关闭了原生登录、账号已禁用429触发限流(请求过于频繁)
所有错误统一返回 {"code":<HTTP状态码>,"msg":"错误描述"}。