android - token在什么情况下会过期?

查看:488
本文介绍了android - token在什么情况下会过期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

1.token用什么方式生成最安全?
2.服务器是怎么管理token的,怎么判断是否超出有效期?当用户不再有操作的时候开始计时吗?
3.登录的时候获取了token,后面涉及用户操作的请求都要携带token,如果被抓包得到token是不是可以进行虚假操作了?

解决方案

我们也刚好在解决类似的问题,以下是我们设想的准备去实践的方案,欢迎讨论,难免疏漏

  1. 安全都是相对的,没有什么最安全一说,要根据具体的业务、人力、开发成本等等去综合考虑。我们目前考虑的算法hash("sha256",user_id+timestamp+salt),timestamp是时间戳,salt是加密盐,这个不知道如何解释,反正你认为是增加破解难度即可,salt尽量是带有大小写字母、字符、数字的一个固定字符串

  2. 服务器生成token以后和token失效时间一起存储在redis里面,比如失效时间为一天86400秒,然后每次请求服务器端都会检测这个token是否失效,如果失效就响应token失效状态码,客户端获取到这个状态码以后调用更新token的接口,用老的token换取服务器端重新生成的token并本地存储。然后更严谨一点的话根据产品需求设定一个超时登录时间,redis里面可以直接给key设定超时比如一个月,redis.expire(key,expiration);然后登时间到了redis就会自动删除,避免僵尸用户一直占用redis存储。另外每次登陆都会重新更新一次token

  3. 目前设想的每个用户都会有一个唯一的token,所以就算被抓包也只是获取了这个用户的所有用户数据,并不算严重,这个就是我所说的相对安全,说白了就是我们没有更多的资源用来处理这个问题使他更安全,或许后续会更新

个人建议,仅供参考

这篇关于android - token在什么情况下会过期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆