4 Star 9 Fork 3

aiken / angelica-boot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

angelica

项目介绍

基于Spring boot快速构建互联网项目的API服务,阿里云服务的封装,第三方支付封装,和一些常用工具核心类封装。让你快速完成一个MVP(最小化可行性产品)。

项目结构

  • angelica-boot
    • angelica-admin #后台管理服务
    • angelica-aliyun #阿里云服务
    • angelica-api #API服务
    • angelica-generator #代码生成工具
    • angelica-pay #第三方支付服务
    • doc #相关文档目录
      • config #相关部署配置文件
      • sql #数据库设计原型,sql脚本
    • pom.xml #项目POM文件

技术介绍

开源技术:
  1. Spring Boot 轻松创建可运行的spring应用程序
  2. MyBatis 最优秀的持久层框架
  3. MyBatis-Plus 简化mybatis开发
  4. Swagger 自动生成接口文档
阿里云技术:
  1. 对象存储 OSS
  2. 表格存储 TableStore
  3. 开放搜索 OpenSearch
  4. 日志服务 Log Service
  5. 短信服务 Short Message Service
  6. 安全凭证 STS
  7. 智能媒体管理 IMM
第三方支付集成
  1. 微信支付集成
  2. 支付宝支付集成
代码生成工具

angelica-generator

接口数据签名协议

为了防止过期请求、重复请求、篡改接口参数等安全性问题,每个接口都需要遵循接口签名协议。协议要求在请求头中传递三个参数: timestamp 请求发生的时间戳,13位时间戳,客户端发送请求时生成。 nonce 请求的唯一标识码,客户端发送请求时生成UUID,或者唯一的MD5值。 sign 请求参数的MD5签名,MD5(appid+sort(params)+apSecret)

##参数签名方法: 如果请求参数为:b=12,a=23,d=56 1、对参数名进行字典排序:a=23,b=12,d=56 2、拼接有序的参数和参数值:a23b12d56 3、拼接appid和appsecret:appida23b12d56appsecret 4、进行MD5加密。

##Java签名代码演示:

/**
* 请求参数签名方法
* @param paramMap
* @return
*/
public static String sign(String appid,String appSecret,Map<String,String> paramMap) {
	//对参数名进行字典排序
	String[] keyArray = paramMap.keySet().toArray(new String[0]);
	Arrays.sort(keyArray);
		
	//拼接有序的参数-参数值
	StringBuilder stringBuilder = new StringBuilder();
	stringBuilder.append(appid);
	for(String key:keyArray) {
		stringBuilder.append(key).append(paramMap.get(key));
	}
	stringBuilder.append(appSecret);
	String codes = stringBuilder.toString();
	return DigestUtils.md5Hex(codes).toLowerCase();
}
登录验证机制

针对需要登录才能使用的接口,需要进行登录验证。

登录之后接口返回的token信息如下: accessToken:包含登录信息的jwt token expiredAt:token过期时间 refreshToken:刷新token reExpiredAt:刷新token过期时间,比expiredAt更长。

客户端发送请求的时候,需要在请求头添加authorization=登录之后返回的accessToken。服务器验证authorization,如果过期或者不正确将返回授权失败。

##客户端如何实现登录之后自动登录? 1、缓存登录接口返回的信息 2、每次打开APP的时候,客户端检测expiredAt是否快要过期,如果快要过期(比如还有1天过期),可提前通过refreshToken,调用刷新token接口获取新的登录信息。 3、如果刷新token也过期了,再跳转到登录页面。

The MIT License (MIT) Copyright (c) 2018 aiken Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

基于Spring boot快速构建互联网产品的API服务,利用阿里云-云效实现自动化构建与部署到Serverless App Engine(SAE),无需管理服务器。 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/aizhimin/angelica-boot.git
git@gitee.com:aizhimin/angelica-boot.git
aizhimin
angelica-boot
angelica-boot
master

搜索帮助