用户系统

Anniv 的用户系统分为注册、登录、注销三个部分。

错误代码一览

错误代码详情
102000昵称不可用
102001注册邮箱不可用
102010邮箱或密码错误
102020用户不存在

对用户密码的预处理

客户端在向服务端发送密码之前,须对用户的明文密码进行一次 sha256 处理。该步骤仅在一定程度上减少用户原文密码的泄露,但仍可以通过诸如彩虹表的方式破解。

用户信息

Endpoint

GET /api/user/info

返回

返回当前用户信息(UserInfo)。

返回参数

参数名类型详情
user_idstring用户 ID
emailstring邮箱
nicknamestring昵称
avatarstring头像链接

参数表示

interface UserInfo {
  user_id: string;
  email: string;
  nickname: string;
  avatar: string;
}

修改密码

Endpoint

PATCH /api/user/password

请求参数

参数名类型详情
old_passwordstring原密码
new_passwordstring新密码

返回

原密码正确时,将用户密码修改为新密码。

错误列表

错误代码详情
102010原密码错误

用户简介

Endpoint

GET /api/user/intro

请求

请求参数

参数名类型详情
user_idstring用户 ID

返回

返回指定用户的用户简介(UserIntro)。

返回参数

参数名类型详情
user_idstring用户 ID
nicknamestring昵称
avatarstring头像链接

参数表示

interface UserIntro {
  user_id: string;
  nickname: string;
  avatar: string;
}

错误列表

错误代码详情
102020用户不存在

修改简介

Endpoint

PATCH /api/user/intro

请求参数

参数名类型详情
nicknamestring昵称
avatarstring头像

返回

当用户已登录时,修改用户昵称与头像。

错误列表

错误代码详情
102000昵称不可用

用户注册

该接口无需用户登录。

Endpoint

POST /api/user/register

请求

请求参数

参数名类型详情
passwordstring密码
emailstring邮箱
nicknamestring昵称
avatarstring头像链接

返回

注册成功时,返回用户信息(UserInfo)。

参数表示

interface UserRegisterBody {
  email: string;
  password: string;
  nickname: string;
  avatar: string;
}

错误列表

错误代码详情
102000注册昵称不可用
102001注册邮箱不可用
102002注册密码格式错误

用户登录

该接口无需用户登录。

Endpoint

POST /api/user/login

请求

请求参数

参数类型详情
emailstring邮箱
passwordstring密码

返回

登录成功时,返回用户信息(UserInfo)。

参数表示

interface UserLoginBody {
  email: string;
  password: string;
}

错误列表

错误代码详情
102010邮箱或密码错误

用户退出

Endpoint

POST /api/user/logout

客户端设计指引

当用户退出成功时,建议清理对应客户端的 Cookie

用户注销

注销当前用户帐号。

Endpoint

POST /api/user/revoke

参数表示

interface UserRevokeBody {
  // 暂空
}

客户端设计指引

用户注销接口一旦请求,用户立即注销。客户端在设计时应考虑增加多道确认步骤。

错误列表

错误代码详情
102020用户不存在,该错误可能出现于客户端保留了注销前的凭据

使用情况

该接口无需用户登录。

Endpoint

POST /api/user/register/check

请求

请求参数

参数类型详情
emailstring邮箱

错误列表

错误代码详情
102001注册邮箱不可用