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