banner
NEWS LETTER

详解APP的Token验证机制

Scroll down

下面为Token获取的整个流程图:

整体流程这里做一下稍微的介绍:

  1. 进去APP中先获取Android/Ios设备Id
    调用后端接口获取appId和appSecret,如果数据库中有数据,则从APP设备备案表中直接获取,如果未存在数据,则往APP设备备案表中存入一条记录,appId和appSecret可以由UUID生成,并返回APP,appId和appSecret在APP做缓存处理,缓存周期可以为一天。

  2. app判断本地是否缓存Token,如果没有则调用获取Token接口

这里面需要做验证签名安全验证机制处理,验签加密为(uuid+appSecret+timestamp)做md5加密,保证每个用户验签内容不同,如果验证签名通过则生成Token、sessionKey(UUID)、sessionSecret(UUID),并将生成Token、sessionKey、sessionSecret、appId、appSecret等参数存于Redis内,并将Redis生命周期置为8小时(可自定义)。并将Token、sessionKey、sessionSecret返回APP。APP将Token做缓存处理,周期可以为8小时。

  1. 此时APP已经缓存有Token,调用接口请求数据,后端可以采用AOP或者Interceptor(拦截器)截取请求参数,验证是否有Token,没有则再获取。如果存在Token,验证Redis是否存在authenUserId和authenTicket(登录验证票),如果未存在则返回未登录状态码,APP跳转登录页。

  2. 登录账户密码以DES加密传输,以获取Token接口返回参数sessionKey和sessionSecret作为DES加密的key和iv,保证每个用户的不一致性加密,登录成功后,更新Redis里面authenUserId和authenTicket(登录验证票)字段,往APP登录验证票表新增一条登录数据,记录用户登录记录,authenUserId和authenTicket可以由UUID生产,将authenUserId和authenTicket返回APP,并做缓存化处理。

  3. 重新请求接口,拦截器根据Token判断Redis里是否存在authenTicket,如果存在authenUserId和authenTicket(登录验证票)则为登陆成功状态,允许请求接口,至此Token流程基本结束。

————————————————
版权声明:本文为CSDN博主「斑马工」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014526891/article/details/82625438

其他文章
目录导航 置顶
  1. 1. 下面为Token获取的整个流程图:
请输入关键词进行搜索