账号认证查询
查询某账号在软柠身份平台(id.rutno.com)的认证状态。返回认证名字、类型、图标与时间,不返回任何敏感个人信息(身份证号、姓名等原始认证内容)。
接口地址
https://id.rutno.com/api/v2/verify_account
| 项目 | 值 |
| 请求方法 | GET 或 POST(推荐 POST) |
| 返回格式 | JSON(UTF-8) |
| 鉴权方式 | 客户端凭据(client_id + client_secret) |
建议使用 POST,避免凭据出现在 URL / 访问日志 / Referer 中。支持 OPTIONS 预检。
请求参数
| 参数 | 类型 | 必填 | 说明 |
| account | string | 是 | 被查询用户的账号(account_id) |
| client_id | string | 是 | 平台分配给您的客户端 ID |
| client_secret | string | 是 | 平台分配给您的客户端密钥 |
参数可通过 GET 查询串或 POST 表单体(application/x-www-form-urlencoded)传递,二者等价。
鉴权
调用前请确认:
- 您已获得平台分配的 client_id 与 client_secret;
- 平台已为您的客户端开启本接口权限(默认关闭,需联系平台管理员开启)。
若凭据无效、客户端被封禁、或未开启本接口权限,统一返回 blocked(见下文)。
响应
所有响应 HTTP 状态码均为 200,业务结果以 JSON 中的 success / verification / code 表达。
通用字段
| 字段 | 类型 | 说明 |
| success | bool | 请求是否被正常处理 |
| verification | string | verified(已认证)/ none(无认证),仅 success=true 时存在 |
| data | object | 认证详情,仅 verification=verified 时存在 |
| message | string | 提示信息 |
| code | string | 错误码,仅 success=false 时存在 |
1. 已认证
json
{
"success": true,
"verification": "verified",
"data": {
"type_identifier": "company_v",
"type_name": "企业认证",
"display_name": "软柠科技创始人、CEO",
"icon_url": "https://id.rutno.com/public/uploads/media/69b429feabd60_17.png",
"created_at": "2026-04-23 20:13:06",
"updated_at": "2026-04-23 20:15:07"
}
}2. 无认证 / 账号不存在
json
{
"success": true,
"verification": "none",
"message": "该账号暂无已通过的认证"
}账号不存在与账号存在但未认证均返回 none,不会泄漏账号是否存在。
3. 被禁止请求
json
{
"success": false,
"code": "blocked",
"message": "禁止请求"
}4. 缺少参数
json
{
"success": false,
"code": "missing_param",
"message": "缺少参数:account / client_id / client_secret"
}5. 内部错误
json
{
"success": false,
"code": "error",
"message": "内部错误"
}data 字段说明
仅当 verification=verified 时返回:
| 字段 | 类型 | 说明 |
| type_identifier | string | 认证类型标识,如 company_v、realname |
| type_name | string | 认证类型名,如「企业认证」「实名认证」 |
| display_name | string | 认证名字(认证通过时登记的展示名) |
| icon_url | string | 认证类型图标 URL |
| created_at | string | 认证提交时间(YYYY-MM-DD HH:MM:SS) |
| updated_at | string | 认证最后更新时间 |
认证提交的原始内容(身份证号、姓名、证件影像等)不会通过本接口返回。
错误码
| code | 含义 | 触发条件 |
| missing_param | 缺少参数 | account / client_id / client_secret 任一为空 |
| blocked | 禁止请求 | 凭据无效 / 客户端被封禁 / 未开启本接口权限 |
| error | 内部错误 | 服务端异常(细节不会返回客户端) |
调用示例
cURL
bash
# 查询某账号认证状态
curl -s 'https://id.rutno.com/api/v2/verify_account' \
-d 'account=i6wsxq' \
-d 'client_id=YOUR_CLIENT_ID' \
-d 'client_secret=YOUR_CLIENT_SECRET'PHP
php
$ch = curl_init('https://id.rutno.com/api/v2/verify_account');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => http_build_query([
'account' => 'i6wsxq',
'client_id' => 'YOUR_CLIENT_ID',
'client_secret' => 'YOUR_CLIENT_SECRET',
]),
]);
$res = json_decode(curl_exec($ch), true);
if ($res['success'] && $res['verification'] === 'verified') {
echo '已认证:' . $res['data']['display_name']
. '(' . $res['data']['type_name'] . ')';
} else {
echo '未认证或不可查询';
}Node.js
js
const params = new URLSearchParams({
account: 'i6wsxq',
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
});
const res = await fetch('https://id.rutno.com/api/v2/verify_account', {
method: 'POST',
body: params,
}).then(r => r.json());
if (res.success && res.verification === 'verified') {
console.log(`已认证:${res.data.display_name}(${res.data.type_name})`);
} else {
console.log('未认证或不可查询');
}Python
python
import requests
res = requests.post('https://id.rutno.com/api/v2/verify_account', data={
'account': 'i6wsxq',
'client_id': 'YOUR_CLIENT_ID',
'client_secret': 'YOUR_CLIENT_SECRET',
}).json()
if res.get('success') and res.get('verification') == 'verified':
d = res['data']
print(f"已认证:{d['display_name']}({d['type_name']})")
else:
print('未认证或不可查询')安全与注意事项
- 仅限服务端调用:client_secret 为机密,严禁放在前端代码或浏览器请求中。本接口仅供您的后端服务调用。
- 强制 HTTPS:所有请求须走 https://,不得通过明文 HTTP 传输凭据。
- 妥善保管密钥:client_secret 应存于环境变量或密钥管理服务,切勿提交到代码仓库;如需轮换请联系平台管理员。
- 最小使用:仅查询业务必需的账号,避免批量/高频调用。所有调用会被平台审计记录。
- 不返回 PII:本接口刻意不返回认证原始内容。如业务确需更多字段,请联系平台评估,勿自行期望接口放开敏感数据。
如需开通接口权限、获取凭据或咨询字段需求,请联系软柠身份平台管理员。