最近查阅了一些秘钥的文档,大体上有一下几种
一 通过接口获取token,请求时携带token请求,token 30分钟更新一次
登录后,服务器会生成token并返回给客户端,之后客户端与服务器交互的操作中,服务器程序会对比这个token,正确则允许操作,否则拒绝客户端请求。
二 分配key和userid,根据加密规则将key、userid和请求参数进行加密
1.从请求头中获取openid(是userid的编码形式),token,calltype,signature(是对param,appkey,calltype的签名)
2.通过String redis_token=Redis.getUsrToken(openId);验证用户身份
3.验证身份通过后从request获取请求参数
4.验证请求参数的完整性VerificationUtil.verify(map, appSecret, signature,calltype),如果后端生成的signature签名和前端传来的签名相同则验证通过
后端的测试:修改请求头,把openid,token,calltype,和手动生成的signature带入header测试
注:此代码中前端传来的request中不会默认包含分页参数,看前端应用的技术。使用easyui时会默认的传分页参数
方法checkGetParams实现了用户操作的验证,相当于一个登陆拦截器的作用
三 分配key,请求时携带key请求
使用xUtils的HttpUtlis进行网络请求有GET/POST两种方式:
当需要带参数请求的时候要注意: