Appearance
用户注册接口
用于实现用户注册功能,支持通过GET或POST方式传递参数,需填写应用ID、用户账号等必填信息,可选传递QQ、邮箱等扩展信息,应用签名从后台直接获取。
请求地址 GET / POST
http
https://nobase.cn/api/user/register请求参数
| 参数名 | 类型 | 必选 | 说明 |
|---|---|---|---|
| appid | string | ✅ 是 | 应用ID,从开发者中心获取的应用唯一标识 |
| signature | string | ✅ 是 | 应用签名,从后台直接获取(无需手动生成,与appid绑定) |
| user | string | ✅ 是 | 用户账号,用于登录的唯一标识(如手机号、用户名) |
| pass | string | ✅ 是 | 用户密码,建议传递前进行MD5加密处理 |
| nickname | string | ✅ 是 | 用户昵称,用于展示的名称(支持中文、特殊符号) |
| string | ❌ 否 | 用户QQ号,可选填,用于账号关联或找回 | |
| string | ❌ 否 | 邮箱地址,可选填,用于账号验证或密码找回 | |
| imag | string | ❌ 否 | 头像链接,需配合图床使用,可选填(无则用默认头像) |
返回示例
成功响应(注册成功)
json
{
"code": 200,
"msg": "success",
"data": "注册成功"
}失败响应(账号已存在/应用不存在)
json
{
"code": 404,
"msg": "fail",
"data": "该账号已被注册!"
}json
{
"code": 404,
"msg": "应用不存在"
}返回数据结构
| 参数名 | 类型 | 说明 |
|---|---|---|
| code | number | 状态码:200=注册成功,400=参数错误/业务失败,500=系统错误 |
| msg | string | 状态描述:success=成功,fail=失败 |
| data | string | 响应信息:成功时返回“注册成功”,失败时返回具体错误原因(如“账号已存在”“签名错误”) |
代码示例
javascript
// 1. 配置参数(必填项需替换为实际值,signature从后台获取)
const appid = "your_app_id"; // 应用ID(必填)
const signature = "your_signature_from_backend"; // 应用签名(后台获取,必填)
const user = "user123456"; // 用户账号(必填)
const pass = md5("user_password123"); // 用户密码(MD5加密,必填,需先引入md5库)
const nickname = "用户昵称"; // 用户昵称(必填)
// 可选参数(无则不传递)
const qq = "123456789";
const email = "user@example.com";
const imag = "https://example.com/avatar.jpg";
// 2. 拼接GET参数(处理可选参数,无则不添加)
const params = new URLSearchParams({
appid,
signature,
user,
pass,
nickname
});
if (qq) params.append('qq', qq);
if (email) params.append('email', email);
if (imag) params.append('imag', imag);
// 3. 发起GET请求
const requestUrl = `https://nobase.cn/api/user/register?${params.toString()}`;
fetch(requestUrl)
.then(response => {
if (!response.ok) throw new Error(`HTTP错误:${response.status}`);
return response.json();
})
.then(res => {
if (res.code === 200) {
console.log("注册结果:", res.data); // 输出“注册成功”
} else {
console.error("注册失败:", res.data); // 输出具体错误
}
})
.catch(error => console.error("请求异常:", error));javascript
// 1. 配置参数(同GET,signature从后台获取)
const appid = "your_app_id";
const signature = "your_signature_from_backend"; // 后台获取的签名
const user = "user123456";
const pass = md5("user_password123"); // 密码加密(需引入md5库)
const nickname = "用户昵称";
const qq = "123456789"; // 可选
const email = "user@example.com"; // 可选
const imag = "https://example.com/avatar.jpg"; // 可选
// 2. 构造POST参数(处理可选参数)
const params = new URLSearchParams({
appid,
signature,
user,
pass,
nickname
});
if (qq) params.append('qq', qq);
if (email) params.append('email', email);
if (imag) params.append('imag', imag);
// 3. 发起POST请求
fetch('https://nobase.cn/api/user/register', {
method: 'POST',
body: params,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
.then(response => {
if (!response.ok) throw new Error(`HTTP错误:${response.status}`);
return response.json();
})
.then(res => {
if (res.code === 200) {
console.log("注册结果:", res.data);
} else {
console.error("注册失败:", res.data);
}
})
.catch(error => console.error("请求异常:", error));python
import requests
import hashlib
# 1. 配置参数(必填项需替换为实际值,signature从后台获取)
appid = "your_app_id" # 应用ID(必填)
signature = "your_signature_from_backend" # 应用签名(后台获取,必填)
user = "user123456" # 用户账号(必填)
passwd = "user_password123" # 原始密码
nickname = "用户昵称" # 用户昵称(必填)
qq = "123456789" # 可选
email = "user@example.com" # 可选
imag = "https://example.com/avatar.jpg" # 可选
# 2. 密码MD5加密(必填,避免明文传输)
pass_md5 = hashlib.md5(passwd.encode('utf-8')).hexdigest().lower()
# 3. 构造GET参数(处理可选参数)
params = {
"appid": appid,
"signature": signature,
"user": user,
"pass": pass_md5,
"nickname": nickname
}
if qq:
params["qq"] = qq
if email:
params["email"] = email
if imag:
params["imag"] = imag
# 4. 发起GET请求
url = "https://nobase.cn/api/user/register"
try:
response = requests.get(url, params=params, timeout=5)
response.raise_for_status() # 抛出HTTP错误
res_data = response.json()
if res_data["code"] == 200:
print(f"注册结果:{res_data['data']}")
else:
print(f"注册失败:{res_data['data']}")
except requests.exceptions.RequestException as e:
print(f"请求异常:{str(e)}")python
import requests
import hashlib
# 1. 配置参数(同GET,signature从后台获取)
appid = "your_app_id"
signature = "your_signature_from_backend" # 后台获取的签名
user = "user123456"
passwd = "user_password123"
nickname = "用户昵称"
qq = "123456789" # 可选
email = "user@example.com" # 可选
imag = "https://example.com/avatar.jpg" # 可选
# 2. 密码MD5加密
pass_md5 = hashlib.md5(passwd.encode('utf-8')).hexdigest().lower()
# 3. 构造POST参数(处理可选参数)
params = {
"appid": appid,
"signature": signature,
"user": user,
"pass": pass_md5,
"nickname": nickname
}
if qq:
params["qq"] = qq
if email:
params["email"] = email
if imag:
params["imag"] = imag
# 4. 发起POST请求
url = "https://nobase.cn/api/user/register"
try:
response = requests.post(url, data=params, timeout=5)
response.raise_for_status()
res_data = response.json()
if res_data["code"] == 200:
print(f"注册结果:{res_data['data']}")
else:
print(f"注册失败:{res_data['data']}")
except requests.exceptions.RequestException as e:
print(f"请求异常:{str(e)}")注意事项
- 签名获取与使用:
signature需从后台直接获取,与appid一一绑定,无需手动生成;签名不匹配会返回“签名验证失败”,需核对后台配置的签名值。 - 密码安全规范:
pass参数必须进行MD5加密后传递(代码示例已处理),禁止明文传输原始密码,防止传输过程中泄露。 - 必填参数校验:
appid、signature、user、pass、nickname为必填项,缺失任意一项会返回“参数缺失”错误;建议前端先做非空校验,减少无效请求。 - 业务失败处理:常见失败场景包括“用户账号已存在”“应用ID无效”“签名错误”,需根据
data字段的错误提示,在前端展示对应友好提示(如“该账号已被注册,请更换账号”)。 - 可选参数处理:
qq、email、imag为非必填项,无相关信息时可不传递,避免传递空字符串或无效值导致接口异常。

