前言
现在的项目都采用前后端分类的方式开发了,前后端的通讯方式都通过API进行传输。我们知道,如果是管理后台的开发,可以通过shiro或springSecurity进行权限控制,进而保证API接口的安全性,但是,当我们在进行APP或小程序开发的时候,因为需要用户长期登录等问题,再采用shiro等方式进行安全控制就显得不是那么合理的。
可是,如何让我们的API接口变得安全点?不至于当其他人通过抓包的方式拿到你的userId或一些重要参数的时候,对你的数据进行破坏。
那么,API接口的签名校验,将会是你阻挡这些破坏的一堵墙。
下面,让我们开始API签名校验之旅吧。
基础准备
首先,我们先要了解一下普通的API接口是如何访问的(以POSTMAN为例)。
###下面贴一下代码
@RestController
@RequestMapping(value = "/sign")
public class SignController {
/**
* 验签测试
*
* @return
*/
@RequestMapping(value = "/test")
public String test(String name) {
return name;
}
}
代码很简洁,无需多言,我想,在没进行签名校验的时候大多数人的代码都是这样的吧。
#正式开始
实现效果
###1、前端请求方式
我们需要用到的就是,http请求的 header,将token(令牌) 和 timestamp(时间戳)作为参数,一起发送给我们的后端。然后后端对token和times