token的使用场景一般为第三方授权接口或跨域、跨服务器的请求。token由服务提供方颁发,一般需要有新颁发和续约两个接口,失效时长根据使用场景可以分为10分钟或1小时等多种时效。
1、Token的颁发:
**颁发方式:**用户名、密码、时间和序列进行统一认证,认证通过后返回token,其中密码信息为线下沟通,不通过请求传输,密码为校验辅助字符。
**客户端请求数据:**用户名+请求序列+时间明文+校验码。校验码:用户名+时间+序列明文+密码明文进行单向不可逆加密操作,如MD5或SHA1等算法。
**服务端获取数据:**校验时间有效,用户+序列唯一后,进行校验码校验,取请求的明文数据和存储的客户密码,和客户端采用相同的单向不可逆加密操作,进行数据比对,确认请求可靠。
其中,序列号仅可成功一次,成功后需进行规律变更,防止重发和模仿请求。
2、Token续约操作:
**客户端请求数据:**用户名+请求序列+时间明文+校验码。校验码:用户名+请求序列+时间明文+token进行单向不可逆加密操作。
续约过程中,token失效时间控制,如果token失效则不允许续约,需重新获取token。
**服务端获取数据:**校验时间有效,用户+序列唯一后,进行校验码校验。校验有效,更新或者重新颁发新的token。如果重新颁发token需注意原token的缓冲期,避免多服务并发导致客户端请求异常。
3、后续使用:
后续所有接口的token使用方式和校验token方式同续约操作,请求参数中序列,时间和校验码属于公共参数,可放置在请求头或者报文头以及消息体的第一级数据中。