# APP后端开发指南
### APP接口开发强制要求
* 移动端应用APP(不含小程序)开发时,控制器必须添加版本控制,且url前缀需加上版本如`/v1/**`
* 这是因为对于客户端APP,一旦接口发生变化,需更新客户端安装包,你无法保证所有用户都会升级更新,这将导致旧版本的接口仍可能有用户继续使用
![](https://ooo.0o0.ooo/2019/05/14/5cda713c3350b80804.png)
### 快捷登录/注册接口
> 若未注册自动创建账号
* `/Tceon-PERFOOT /app/v1/member/quickLogin`
* 所需参数:mobile(手机号)、code(短信验证码)、inviteCode(邀请码,非必须)、platform(平台,非必须)
* 返回JSON结果对象中的result字段获取存储token令牌
~~~
result: {
isNew: true, // 是否为新注册的账号
token: 026c8bb5ae764634b4d284c773c3ec75 // Token令牌
}
~~~
### 附:短信验证码免真实发送测试方法
* 向`Redis`中添加键值对:`Tceon-PERFOOT _PRE_SMS:手机号:验证码`,如:`Tceon-PERFOOT _PRE_SMS:18782089088:1234`。前缀`Tceon-PERFOOT _PRE_SMS:`可在`CommonConstant`常量中修改
### 携带Token参数发送请求
* 之后需要认证的请求中在header或参数中添加该token参数即可,默认KEY为`appToken`(`SecurityConstant`中可修改)
### 获取当前登录会员方法
~~~
// 注入工具类
@Autowired
private SecurityUtil securityUtil;
// 获取当前登录会员
Member member = securityUtil.getCurrMember();
~~~
### 角色权限相关
* APP应用会员角色权限不会经常变动,可通过`Spring Security`注解表达式权限管理。主要用于用户认证拦截、以及其他需求如超级VIP接口等认证
* 默认注册用户角色权限为`MEMBER`,可在“会员管理”菜单任意添加编辑,单个字段`permissions`存储,多个权限英文逗号`,`分隔
* `Spring Security`[官方注解表达式权限管理](https://docs.spring.io/spring-security/site/docs/5.4.1/reference/html5/#el-common-built-in)
* @PreAuthorize("isAuthenticated()")
* @PreAuthorize("hasAuthority('MEMBER')")
* @PreAuthorize("hasAuthority('VIP')")
* @PreAuthorize("hasAuthority('MEMBER') AND hasAuthority('VIP')")
* @PreAuthorize("hasAuthority('MEMBER') OR hasAuthority('VIP')")
### APP相关日志注解
* 日志注解使用同`@SystemLog(description="操作日志名称", type=日志类型)`
* 日志类型type枚举类相关候选值:`MEMBER_OPERATION`(会员操作相关)、`MEMBER_LOGIN`(会员登录),可自定义添加修改
- 前言版本&说明
- 概念
- Tceon-PERFOOT 是什么?
- 系统架构
- 主要使用的开源组件
- 角色控制访问权限(RBAC)
- 用户手册
- 系统配置
- 工作流使用配置
- 定时任务调度
- 项目本地运行
- 后端运行
- 前端运行
- 项目结构说明
- 附:使用Oracle等数据库
- 模块化版本
- 后端开发指南
- 基本开发指南
- 前后端数据交互标准
- 工具类及数据权限
- 代码生成器
- 增删改查CRUD
- 日志类型注解扩展
- 逻辑删除
- 各验证码使用及配置
- 前端开发指南
- 基本开发指南
- 主题/Logo/首页等配置
- 路由菜单配置
- 多语言国际化配置
- 自定义图标icon
- 工具类及数据获取
- 完整版开发指南
- 前端Vue代码生成器
- Activiti工作流
- 单点登录配置
- MinIO对象存储服务搭建
- 第三方社交账号配置
- 短信开发/站内消息/邮件
- Vaptcha验证码
- 禁用词使用
- Monaco代码编辑器
- 开放平台及单点登录
- 开放平台使用指南
- Web接入开发流程
- 单点登录开发指南
- 微信小程序端开发指南
- 项目导入与开发必读
- 通用方法工具类说明
- Uniapp端开发指南
- APP后端开发指南
- Uniapp前端开发指南
- 开发新功能示例
- 后端开发新模块
- 前端开发新页面
- 测试
- SonarQube代码质量管理
- TestNG单元测试
- ExtentReports测试报告
- Selenuim自动化Web测试
- Appuim自动化App测试
- JMeter压测性能测试
- 部署
- Spring Boot配置
- 快速部署
- 后端部署
- 前端部署
- 前端部署优化
- Docker容器化部署
- 服务器配置
- DevOps环境搭建
- 组件安装列表
- 开发设计规范
- 分支管理
- 数据库设计规范
- Redis使用规范
- Java基础开发规范
- Rest API规范
- 项目结构规范
- 前端开发规范
- 前端设计规范
- 项目搭建分享
- 后端相关
- SpringBoot 2.x区别总结
- Spring Security整合JWT
- Spring Security动态权限管理
- Spring Boot 2.x整合Quartz
- Spring Boot 2.x整合Websocket
- Spring Boot 2.x整合Activiti工作流以及模型设计器
- Spring Boot + Security全局跨域配置
- 前端相关
- axios请求封装 统一异常处理
- 动态路由菜单加载
- 多维度控制权限至按钮显示
- 发送消息图标红点实时显示
- 动态组件单页操作
- 常见问题