一、最简单的 固态签名web
sign = xxxxxx 的模式 ,一般配合time()时间戳传递,通常用来作为普通接口不涉及安全性的接口。小程序
二、动态签名 这种 常规的:微信小程序
1.请求参数api
user_code :分配惟一标识,区分不一样商户安全
order_no :请求单号,多个逗号隔开。微信
order_type: 请求单号类型: 0订单 号,1运单号session
request_time:请求时间戳 YmdHis加密
sign : 签名有字符串,签名规则:spa
MD5(user_code+order_no+order_type+request_time+private_key) ,其中private_key为约定秘钥。code
一般MD5加密的字符串 是按照ASCII排序
经过传递参数和动态md5加密 ,由于约定的private_key 只有双方知道,所以数据被抓包对面也无法加密出正确的sign
三、最稳妥的这种则是参考微信小程序登陆的安全模式,我的以为很棒
经过 wx.login()
获取到用户登陆态以后,须要维护登陆态。开发者要注意不该该直接把 session_key、openid 等字段做为用户的标识或者 session 的标识,而应该本身派发一个 session 登陆态(请参考登陆时序图)。对于开发者本身生成的 session,应该保证其安全性且不该该设置较长的过时时间。session 派发到小程序客户端以后,可将其存储在 storage ,用于后续通讯使用。
经过wx.checkSession()
检测用户登陆态是否失效。并决定是否调用wx.login() 从新获取登陆态