接口认证二
2020-03-08 11:05:57 来源:admin 点击:698
加密模式:
当用户第一次登录后,服务器根据用户id生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
Ps:用户uid固定token在登陆时生成
简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
复杂的token组成 ,简单的token(即服务器返回的token+当前请求的url接口地址)进行md5加密。后传入接口中。服务器获取接口地址,解析认证是否正确
普通模式
客户端使用用户名和密码请求登录。服务端收到请求,验证用户名和密码。验证成功后,服务端会用户id生成一个token,然后把这个token发送给客户端。客户端收到token后把它存储起来,可以放在cookie或者Local Storage(本地存储)里。客户端每次向服务端发送请求的时候都需要带上服务端发给的token。服务端收到请求,然后去验证客户端请求里面带着token,如果验证成功,就向客户端返回请求的数据。
双重模式:
在每次请求种都需重服务器获取一个token,再次请求数据带上token,后端判断有无token之后给出相应的内容,token服务器定时5分种删除一次
一、签名参数sign生成的方法
第1步: 将所有参数(注意是所有参数),除去sign本身,以及值是空的参数,按参数名字母升序排序。
第2步: 然后把排序后的参数按参数1值1参数2值2…参数n值n(这里的参数和值必须是传输参数的原始值,不能是经过处理的,如不能将"转成”后再拼接)的方式拼接成一个字符串。
第3步: 把分配给接入方的验证密钥key拼接在第2步得到的字符串前面。
第2步: 在上一步得到的字符串前面加上验证密钥key(这里的密钥key是接口提供方分配给接口接入方的),然后计算md5值,得到32位字符串,然后转成大写.
第4步: 计算第3步字符串的md5值(32位),然后转成大写,得到的字符串作为sign的值。