系统token的相关问题

2017-12-30  本文已影响0人  closefrien_d1c2

不知道大多数系统是怎么样,下面这个关于token验证方法是我自己根据网上的一些建议,还有自己实践做出来的一套token验证方法。

这是最基本的token验证方法,根据这个方法做了一些改进。

基于 Token 的身份验证方法

大概的流程是这样的:

  1. 客户端使用用户名跟密码请求登录
  2. 服务端收到请求,去验证用户名与密码
  3. 验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端
  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  6. 服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据

改进后的token身份验证方法

  1. 客户端收集用户的手机特征码与用户输入的帐号和密码,经过RSA加密后,输送给服务端
  2. 服务端收到后,对私钥解密出特征码和帐号密码,然后查询mysql
  3. 验证成功后,服务端会生成一个token,返回token给客户端,并且服务端会把该token保存在redis数据库里,设置1800过期时间
  4. 客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
  5. 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
  6. 服务端收到请求,查找redis是否存在或是否过期,如果有并且没有过期就通过,返回请求数据,如果过期时间小于900,在返回值里会多一个token字段,客户端每次请求需要判断token字段是否存在,存在就更新

注解:

建议:当时想这个花了点时间,如果想快速开发,可以不加密,也没什么问题,系统没有达到一个量级不会有什么人来破解,还是那句话,大多数公司死在自我优化的过程中。不过写好后有了这框架后续也方便了。

说起来一大堆费话,其实也就这图上这么点东西

image

老有人问我具体的代码,其实很多时候别人都只是给个思路,具体的方法还是要自己去解决。

由于我还有下位机也需要访问服务器,是用python写的,原理也是一样

这是手机端用js实现

image

这是下位机,用python

image
上一篇 下一篇

猜你喜欢

热点阅读