标签 用户认证 下的文章

1. 文档概述

1.1 文档目的

本文档为[系统名称]接口的标准沟通文档,旨在XXX。

1.2 文档修订记录

修订版本修订时间修订人修订内容
V1.02024-01-01[姓名]初始版本,完成用户管理模块核心接口编写

1.3 接口通用规则

1.3.1 基础URL

环境类型基础URL前缀使用说明
开发环境http://dev-[系统域名]/api/v1供开发人员日常开发、调试使用
测试环境http://test-[系统域名]/api/v1供测试人员执行功能测试、集成测试使用
预发布环境https://uat-[系统域名]/api/v1模拟生产环境配置,用于上线前用户最终验证
生产环境https://[系统域名]/api/v1正式对外提供服务的环境,需严格控制访问权限

1.3.2 数据与编码规范

  • 数据格式:请求/响应默认均为JSON格式,请求头需指定Content-Type: application/json
  • 编码格式:统一采用UTF-8编码,避免出现乱码问题

2. 接口详细说明

2.1 接口列表总览

接口名称接口路径请求方法核心功能
用户认证/auth/loginPOST用户通过账号密码获取访问令牌(Token)

2.2 用户认证接口(/auth/login)

2.2.1 接口基础信息

功能描述:用户通过输入账号、密码及验证码完成身份校验,校验通过后获取访问令牌(Token)和刷新令牌,访问令牌用于后续接口调用的身份认证。

  • 接口路径:/auth/login
  • 请求方法:POST
  • 认证方式:无(无需携带Token)

2.2.2 请求头参数

字段名字段值是否必填说明
Content-Typeapplication/json指定请求数据格式为JSON

2.2.3 请求参数(Body)

字段名类型是否必填描述格式要求
usernamestring用户账号长度为4-20位,支持字母、数字及下划线
passwordstring用户密码长度为8-20位,需包含大小写字母、数字及特殊字符
captchastring验证码长度为4位,区分大小写,需与前端展示的验证码一致

请求示例:


{
  "username": "admin",
  "password": "Admin@123456",
  "captcha": "8FzQ"
}

2.2.4 响应参数

2.2.4.1 成功响应
字段名类型描述补充说明
codeinteger业务成功码固定为200,表示业务处理成功
messagestring响应信息描述成功时默认返回"登录成功"
dataobject响应数据主体包含认证相关的令牌信息
data.tokenstring访问令牌有效时长为2小时,后续接口调用需携带此令牌
data.refreshTokenstring刷新令牌有效时长为7天,用于访问令牌过期后刷新获取新令牌
2.2.4.2 错误响应
字段名类型描述补充说明
codeinteger业务错误码不同错误场景对应不同的错误码,具体参考第3章节状态码说明
messagestring错误信息明确提示错误原因,便于问题排查
dataobject错误响应体错误场景下通常为null

成功响应示例:

{
  "code": 200,
  "message": "登录成功",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9",
    "refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"
  }
}

错误响应示例:

{
  "code": 4001,
  "message": "账号或密码错误",
  "data": null
}

3. 状态码说明

本文档中状态码分为业务状态码(接口响应中的code字段)和HTTP状态码,本章节主要说明业务状态码的含义及对应解决方案。

状态码错误类型错误描述解决方案
200成功业务处理成功无需处理,正常后续流程即可
400参数错误请求参数缺失、格式错误或不符合校验规则(具体见错误信息)根据错误信息提示,按接口请求参数要求修正参数格式、补充缺失参数
401认证错误未携带认证令牌、令牌已过期或令牌无效重新调用登录接口获取有效令牌,在请求头中添加Authorization字段(格式:Bearer [Token])
403权限错误当前用户无该接口的访问权限联系系统管理员申请对应接口的访问权限,权限开通后再进行调用
404资源错误接口路径不存在或请求的资源不存在核查接口路径是否与文档一致,确认请求的资源标识(如用户ID)是否有效
500系统错误服务器内部错误,无法正常处理请求记录完整的错误响应信息(含请求参数、时间戳),联系后端开发人员排查问题

4. 附录

4.1 数据类型说明

类型说明
string字符串类型
integer整数类型
long长整数类型
boolean布尔类型识
object对象类型
array数组类型

项目简介

开发了一个 Apache Answer 的微信 OAuth 登录插件,让你的 Answer 社区可以支持微信扫码登录。

GitHub: https://github.com/starvpn/answer-user-wxcom

✨ 主要特性

  • ? 标准 OAuth 2.0 协议
  • ? 中英文双语支持
  • ? 微信官方 Logo 样式
  • ⚙️ 配置简单(只需 AppID + AppSecret )
  • ? 内置 CSRF 防护和安全验证
  • ? 支持扫码登录和调用 PC 微信能力

? 一条命令安装

answer build \
--with github.com/starvpn/answer-user-wxcom \
--output ./new_answer

也支持 Docker 部署,可以和其他插件一起安装。

为什么做这个?

最近在用 Answer 搭建社区,发现国内用户更习惯微信登录。虽然 Answer 有 GitHub/Google 等登录方式,但对国内用户不太友好。于是按照 Answer 的插件机制开发了这个微信登录插件。

技术细节

  • 基于 Answer 1.3.0+ 的 Connector 插件机制
  • 遵循微信开放平台的网站应用接入规范
  • 实现了完整的 OAuth 2.0 授权码流程
  • 使用 State 参数防止 CSRF 攻击
  • 支持 i18n 国际化

适用场景

  • 国内的 Answer 问答社区
  • 需要微信登录的技术论坛
  • 企业内部知识库(配合企业微信)