# app-server
**Repository Path**: scarecrow-lucifer/app-server
## Basic Information
- **Project Name**: app-server
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-12-28
- **Last Updated**: 2021-12-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 项目接口文档
## 流程图
### 用户注册流程
### 用户登录流程
## 环境搭建
### 数据库
* `docker-compose.yaml: mysql服务器`
```yaml
version: "3"
services:
app-mysql:
image: mysql:5.7
ports:
- 3307:3306
container_name: app-mysql
volumes:
- ./components/app-mysql/data:/var/lib/mysql
- ./components/app-mysql/init:/docker-entrypoint-initdb.d
- /etc/localtime:/etc/localtime
environment:
MYSQL_ROOT_PASSWORD: openIM
restart: always
```
* `init.sql: 初始化脚本`
```sql
CREATE DATABASE IF NOT EXISTS app_server DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE app_server;
DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user`
(
`uid` varchar(256) NOT NULL,
`user_name` varchar(256) NULL DEFAULT NULL COMMENT '用户名',
`password` varchar(256) NULL DEFAULT NULL COMMENT '密码',
`gender` tinyint(4) NULL DEFAULT NULL COMMENT '性别0:女,1:男',
`phone_number` varchar(256) NULL DEFAULT NULL COMMENT '手机号',
`email` varchar(256) NULL DEFAULT NULL COMMENT '邮箱',
`birth` datetime(0) NULL DEFAULT NULL COMMENT '生日',
`token` varchar(256) NULL DEFAULT NULL COMMENT 'token,需从sdk获取',
`expired_time` datetime(0) NULL DEFAULT NULL COMMENT 'token 过期时间',
PRIMARY KEY (`uid`) USING BTREE
) ENGINE = InnoDB
CHARACTER SET = utf8mb4
COLLATE = utf8mb4_unicode_ci;
```
## 接口文档
### 发送验证码
#### 描述
> AppServer 是基于手机号进行登录注册,因此为了保证手机号的准确归属人,必须进行短信验证码的校验
#### 请求URL
* `http://192.168.3.101/auth/code`
#### 请求方式
* `POST`
#### 请求示例
```json
{
"phoneNumber": "xxxx"
}
```
#### 请求参数
| 参数名 | 必选 | 类型 | 说明 |
| :---------: | :--: | :----: | :------------------------------------------------------- |
| phoneNumber | 是 | string | 手机号,用于进行账号的注册和登录,必须保证其格式的合法性 |
#### 返回示例
```json
{
"errCode": 0
}
```
#### 返回参数
| 参数名 | 类型 | 说明 |
| :------ | :----- | ---------------- |
| errCode | int | 0:成功,非0:失败 |
| errMsg | string | 错误信息 |
### 校验验证码
#### 描述
> AppServer 对短信验证码进行校验
#### 请求URL
* `http://192.168.3.101/auth/verify`
#### 请求方式
* `POST`
#### 请求示例
```json
{
"phoneNumber": "xxxx",
"verificationCode": "xxxx"
}
```
#### 请求参数
| 参数名 | 必选 | 类型 | 说明 |
| :--------------: | :--: | :----: | :------------------------------------------------------- |
| phoneNumber | 是 | string | 手机号,用于进行账号的注册和登录,必须保证其格式的合法性 |
| verificationCode | 是 | string | 验证码 |
#### 返回示例
```json
{
"errCode": 0,
"data": {
"verifyCode": 1
}
}
```
#### 返回参数
| 参数名 | 类型 | 说明 |
| :--------- | :----- | ---------------- |
| errCode | int | 0:成功,非0:失败 |
| errMsg | string | 错误信息 |
| verifyCode | int | 1验证成功 |
### 设置登录密码
#### 描述
> AppServer 用户注册流程中注册用户信息并为用户设置登录密码
#### 请求URL
* `http://192.168.3.101/auth/password`
#### 请求方式
* `POST`
#### 请求示例
```json
{
"phoneNumber": "xxxx",
"password": "xxxx",
"verificationCode": "xxxx",
"platform": 1
}
```
#### 请求参数
| 参数名 | 必选 | 类型 | 说明 |
| :--------------: | :--: | :----: | :------------------------------------------------------- |
| phoneNumber | 是 | string | 手机号,用于进行账号的注册和登录,必须保证其格式的合法性 |
| password | 是 | string | 密码 经过MD5转码后的字符串数据 |
| verificationCode | 是 | string | 验证码 |
| platform | 是 | int | 平台 1:ios 2:非ios |
#### 返回示例
```json
{
"errCode": 0,
"data": {
"uid": "xxxx",
"token": "xxxx"
}
}
```
#### 返回参数
| 参数名 | 类型 | 说明 |
| :------ | :----- | ---------------- |
| errCode | int | 0:成功,非0:失败 |
| errMsg | string | 错误信息 |
| uid | string | 注册的用户 UID |
| token | string | 生成的用户 token |
### 用户登录
#### 描述
> AppServer 用户登录流程,校验用户凭证是否正确;校验通过后返回 uid、token 用于 AppClient 发起 SDK 初始化
#### 请求URL
* `http://192.168.3.101/auth/login`
#### 请求方式
* `POST`
#### 请求示例
```json
{
"phoneNumber": "xxxx",
"password": "xxxx",
"platform": 1
}
```
#### 请求参数
| 参数名 | 必选 | 类型 | 说明 |
| :---------: | :--: | :----: | :------------------------------------------------------- |
| phoneNumber | 是 | string | 手机号,用于进行账号的注册和登录,必须保证其格式的合法性 |
| password | 是 | string | 密码 经过MD5转码后的字符串数据 |
| platform | 是 | int | 平台 1:ios 2:非ios |
#### 返回示例
```json
{
"errCode": 0,
"data": {
"uid": "xxxx",
"token": "xxxx"
}
}
```
#### 返回参数
| 参数名 | 类型 | 说明 |
| :------ | :----- | ---------------- |
| errCode | int | 0:成功,非0:失败 |
| errMsg | string | 错误信息 |
| uid | string | 注册的用户 UID |
| token | string | 生成的用户 token |