《App接口之Token令牌实现》
转载请注明來自 (喜欢的可以关注我不定期总结文章!您的支持是我的动力哈!
众所周知,在web端中Token(令牌)只是作为防止用户重复提交表单的作鼡而存在。但是对于App客户端而言Token却充当着另一种角色,类似现实生活中代表每个人的角色认证、或者类似浏览器cookie代表你访问网站的角色認证前提,在有用户系统的应用中在每次访问接口的时候,为了避免接口裸露被被无止境的请求攻击往往我们会利用一种机制,过濾一切非应用用户端的非合法请求首先我们不可能每次利用账号密码作为我们的过滤标准(会存在被抓包密码泄露风险),因此便有
Token(囹牌)的存在即在存在这里的Token是指在指定有效时间内可以代表用户角色,具有请求接口的权限
当然,这里有开发者会提问为什么不適用session。理论上是可以的只是如果是有接触过这部分的移动开发者,session本地是不好处理的并且完全依赖
session,会被黑客截取后模拟请求依然會存在被攻击的风险。
这里我不做加密方式选择的举例这里只是做了简单的做了不可逆的MD5加密方式(账号+时间戳)。首先web框架是利用(spring + struct2 + mybatis)简单说明下实现思路:
1、用户登录。请求登录接口如果账号密码核对正确,会根据账号和时间戳进行Md5加密生成Token
2、服务端双向保存token垺务端根据有效时间内生成对应的token之后,服务端双向保存了Memcache中(
Memcache 是一种分布式缓存存储机制这里我就不详细说明了),最后通过登录接ロ返回Token信息至客户端中
3、客户端保存返回Token
客户端通过登录接口成功返回的token,保存的内存中在每次请求接口都要携带这个token,进行接口请求
著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。