Skip to content

用户注册接口

用于实现用户注册功能,支持通过GET或POST方式传递参数,需填写应用ID、用户账号等必填信息,可选传递QQ、邮箱等扩展信息,应用签名从后台直接获取。

请求地址 GET / POST

http
https://nobase.cn/api/user/register

请求参数

参数名类型必选说明
appidstring✅ 是应用ID,从开发者中心获取的应用唯一标识
signaturestring✅ 是应用签名,从后台直接获取(无需手动生成,与appid绑定)
userstring✅ 是用户账号,用于登录的唯一标识(如手机号、用户名)
passstring✅ 是用户密码,建议传递前进行MD5加密处理
nicknamestring✅ 是用户昵称,用于展示的名称(支持中文、特殊符号)
qqstring❌ 否用户QQ号,可选填,用于账号关联或找回
emailstring❌ 否邮箱地址,可选填,用于账号验证或密码找回
imagstring❌ 否头像链接,需配合图床使用,可选填(无则用默认头像)

返回示例

成功响应(注册成功)

json
{
  "code": 200,
  "msg": "success",
  "data": "注册成功"
}

失败响应(账号已存在/应用不存在)

json
{ 
  "code": 404, 
  "msg": "fail", 
  "data": "该账号已被注册!" 
}
json
{ 
  "code": 404, 
  "msg": "应用不存在" 
}

返回数据结构

参数名类型说明
codenumber状态码:200=注册成功,400=参数错误/业务失败,500=系统错误
msgstring状态描述:success=成功,fail=失败
datastring响应信息:成功时返回“注册成功”,失败时返回具体错误原因(如“账号已存在”“签名错误”)

代码示例

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)}")

注意事项

  1. 签名获取与使用signature 需从后台直接获取,与 appid 一一绑定,无需手动生成;签名不匹配会返回“签名验证失败”,需核对后台配置的签名值。
  2. 密码安全规范pass 参数必须进行MD5加密后传递(代码示例已处理),禁止明文传输原始密码,防止传输过程中泄露。
  3. 必填参数校验appidsignatureuserpassnickname 为必填项,缺失任意一项会返回“参数缺失”错误;建议前端先做非空校验,减少无效请求。
  4. 业务失败处理:常见失败场景包括“用户账号已存在”“应用ID无效”“签名错误”,需根据 data 字段的错误提示,在前端展示对应友好提示(如“该账号已被注册,请更换账号”)。
  5. 可选参数处理qqemailimag 为非必填项,无相关信息时可不传递,避免传递空字符串或无效值导致接口异常。