因为之前没有用过token的验证机制,一直用的session。
把userid+随机字符串+当前时间进行md5加密后生成token,写入到缓存中,设置过期时间7200秒,如果过期了就在重新生成token,token对应的就能拿着userid的值 ,应该是这个逻辑对吧!
最近用了一个layadmin框架,官方也是建议采用token验证的方式。每次往后台请求数据的时候就带上token,然后服务器端验证token是否合法。这就有点像微信公众号通过appid和appsecret生成token一样,每次请求就要带上token。这个好像是理解了,但在验证这一层面有几点不明白。
我写了一个应用,帐号是admin密码是admin888,用帐号加密码进行aes加密后生成token保存到cookie中。如果我拿到了cookie中的token值 ,不需要帐号密码一样可以进入后台呀。所以要设一个过期时间,保存在cookie中的token 7200秒后就过期,过期又重新生成。重新生成的时候还是用的admin和admin888来生成,那么意思还要把当前的帐号admin和密码admin888继续保存在一个地方以便token过期后继续生成用吗?还有就是我用admin和admin888通过aes加密生成token后,如果token过期了,把生成的token进行解密重新在生成一次。但token过期后在cookie里又获取不到之前生成的token值了啊?想想公众号的逻辑,token过期就要用appid和appsecret重新生成一次,应该还是要有个地方保存着用户的帐号和密码才对,如果保存在session中,那何必又用token机制来做应用呢?