基于Spring boot快速构建互联网项目的API服务,阿里云服务的封装,第三方支付封装,和一些常用工具核心类封装。让你快速完成一个MVP(最小化可行性产品)。
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也过期了,再跳转到登录页面。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。