一个通用的用户登录系统,目标是本身作为一个服务,为外部业务系统进行服务,可多开,可负载均衡。
- 注意:这个程序尚未做完,请勿使用。
- 要查看旧版本代码和此处的说明,请前往 v2016_expired 分支。
- 不支持 Windows 。
随着开发的进程,功能随时会有添加或删除。
- 核心
- 数据库类:封装数据库的各种查询和连接方式。
- 安全类:各种加密方式、常用加密解密封装、通用数据格式检查等。
- 信息类:错误代码和提示库,并封装一些提示方法。
- 用户设置类:尽可能多的配置文件中提供详细选项。
- 数据库
- 封装数据库的各种查询和连接方式,实现传入键值数组就能增删改查统。
- MySQL
- Redis
- 支持读写分离,读写两组数据库可单独指定。
- 数据库类调用时自动选择建立只读数据库还是写入数据库的连接,并自动断开连接。
- 支持负载均衡,读写可分别指定一组不同的数据库。
- 使用 Redis 控制数据库负载均衡。
- 支持读写数据库同时并行连接。
- 一次连接执行多条 SQL 语句,语句执行完毕后再断开连接。
- 支持自由指定数据库中每个表的名称。
- 测试脚本
- 封装数据库的各种查询和连接方式,实现传入键值数组就能增删改查统。
- 加密传输
- 30秒 TOTP 动态密码加密:使用 TOTP 作为服务器与客户端的动态密码种子
- 加密令牌申请接口:客户端第一次连接时将和服务器端商定一个 TOTP 动态密码。
- 网络延迟兼容性:可配置使用过期代码的尝试次数。
- 时间戳双向传递
- 时移加密:使用其他同步时间生成 TOTP 动态密码。
- XXTEA 加密。
- base64 编码变种。
- XXTEA + base64 + TOTP + MD5 + 盐 混合加密收发 JSON 数据。
- 客户端可自主决定是否进行加密传输。
- 接收参数和发送参数的安全封装(包括解析、加密解密、验证访问权限等)。
- 明文传输测试脚本、加密传输测试脚本
- 30秒 TOTP 动态密码加密:使用 TOTP 作为服务器与客户端的动态密码种子
- 访问验证
- 支持为每个功能设定不同的接口访问频率。
- 可设置每个 IP 地址的封禁时长。
- 自动屏蔽高危操作的 IP 地址。
- 记录 IP 地址归属地
- 登录设备数量限制
- 可设置允许登录的最大会话数量。
- 可分别设置手机、平板、网页、PC端允许登录的最大设备数量。
- 超过限制自动登出最早的设备。
- 为模拟器单独设置限制。
- 敏感词屏蔽
- 屏蔽敏感词,可处理段落时关键词(起止)
- 封装接口,在所有用户自定义文本输入的位置应用检查
- 可以直接回绝输入也可以用*取代。
- 支持从 json 文件拉取词语表
- 支持从 Redis 快速拉取词语表
- 用于导入其他应用中的逐行 txt 词库的转换脚本
- Redis 词语表导入导出脚本
- 测试脚本
- 系统日志:用于进行调试
- 数据库日志:记录所有执行的 SQL 语句及数据库返回的结果。
- 参数日志:记录所有收到的参数及传回客户端的参数内容。
- 可以自定义文件位置,随时开关日志功能
- 数据库包含历史记录表,记录所有的关键操作
- 人工审核后台
- APP式接入功能
- 必须在数据库中注册的 APP 令牌才能访问。
- 与外部的业务系统进行对接
- 多个用于与外部系统交互的内置权限
- 测试脚本
- 文件功能
- 限制可以上传的文件类型
- 单独限制视频和图片对应的扩展名限制
- 图片上传功能
- 上传检查
- 图片转换模块
- 图片水印
- GIF压缩和水印
- 视频上传功能
- 上传检查
- 视频转码模块
- 媒体异步二压
- 生成多种预设尺寸和压缩比的图片和视频
- 可自行定义尺寸名称、最大宽高、清晰度
- 将名称组合应用到文件名
- 可以为尺寸和压缩比预设创建多个方案
- 双端比例计算
- 创建一个单独的二压服务
- PHP 端生成配置
- 使用 Redis 双向传输配置
- GO 端处理配置和启动二压
- 配置为 Linux 系统服务
- 媒体文件查询
- 该媒体文件都有哪些清晰度可以用
- 该媒体文件都有哪些格式可以用
- 向前端推荐尺寸和格式
- 多媒体审核功能
- 阿里云云服务支持
- OSS 对象存储 API
- VOD 视频点播 API
- 测试脚本
- 限制可以上传的文件类型
- 用户登录
- 检查用户是否存在
- 检查登录失败次数来决定是否需要输入验证码,并自动发放一个新的验证码
- 检查验证码是否正确,并自动发放一个新的验证码
- 检查用户名和密码,根据需要自动发放一个新的验证码
- 检查账户是否异常,支持存储警告信息
- 同一种类型的设备和全部设备可以设置同时登录上限(例如可以限制为用户手机端只能一台登)
- 自动顶掉当前种类设备的较旧登录会话
- 两步验证
- 测试脚本
- 用户注册
- 注册验证
- 客户端使用图形验证码注册新用户
- 客户端使用邮件注册新用户
- 客户端使用短信注册新用户
- 创建临时令牌
- 客户端使用临时令牌注册新用户
- 删除临时令牌
- 注册验证
- 用户资料
- 为昵称生成唯一代码(神楽坂雅詩#5534)
- 多元性别选项和独立称呼方式选项支持
- 一个用户可以关联多份资料(例如注册自己的宠物)
- 昵称,地址,签名,个人介绍 的编辑
- 头像,背景图 的编辑
- 资料修改测试脚本
- 子账户支持
- 查询主账户下有哪些子账户
- 查询子账户的资料
- 查询指定子账户是否属于当前主账户
- 两步验证和密码保护管理
- 谷歌验证器
- 创建
- 验证
- 解绑
- 二维码生成器
- 测试脚本
- 密码提示问题
- 创建
- 验证
- 解绑
- 测试脚本
- 恢复代码
- 创建
- 验证
- 重置
- 测试脚本
- 短信验证码
- 创建
- 发送
- 验证
- 手机号变更
- 测试脚本
- 邮件验证码
- 创建
- 发送
- 验证
- 邮箱变更
- 测试脚本
- 实名认证
- 身份证号格式识别
- 外部系统校验身份证
- 测试脚本
- 手机、邮箱、身份证的黑名单
- 测试脚本
- 设置为两步验证方式
- 谷歌验证器
- 用户权限
- 内置权限
- 权限的查询和修改接口
- 外部自定义权限接口
- 业务和积分
- 业务列表
- 为每个业务的每个用户提供积分区域
- 为每个业务的每个用户提供积分档位和称号对应
- 为外部系统提供积分变更接口
- 测试脚本
- 站内信
- 系统通知
- 接收和发送用户间站内信
- 接收来自外部系统提供的站内信(提及、评论、转发、视频完成二压等)
- 组合相同类型通知
- 测试脚本
- 搜索
- 区间和排序
- 模糊搜索用户
- 快速模糊搜索用户名
- 测试脚本
- 运维相关工具脚本