关于Android中Token的问题
关于Android中Token的问题
发布时间:2018-02-01 来源:查字典编辑
摘要:问题1:关于Token的生成,生成Token是否可用加入密码?(就是说使用用户名和密码进行加密生成Token)问题2:Token是否要做可逆...

问题1:关于Token的生成,生成Token是否可用加入密码?(就是说使用用户名和密码进行加密生成Token)

问题2:Token是否要做可逆的加密运算?

问题3:如果Token没有加入用户名和密码进行生成,而且也是不可逆的加密,那么Token过期后怎么去请求一个新的Token?

我的设计思路是:

用户登录后,使用UserName以及Password等用户资料进行可逆加密。生成token,当token过期后,我可以解密token,通过token中的UserName和Passwrod从服务器上获取一个新的Token

但是网上查的资料,很多例子生成token都是没有加入账号密码生成的

他们是不是通过服务端的token是否一致,然后再判断token是否过期,过期再刷新token?

回复讨论(解决方案)

我们的用户系统是这么处理了.

用户登陆时, 后台计算出一个token, 并入库, 记录生成时间, 返回token给app

app上后续操作都会需要带上这个token.  在服务端的每个接口都会判断这个token的正确性, 和是否过期.

过期了, 任何接口都会返回token过期的信息, 这时app可以选择让用户重新登陆, 或者自动重新登陆, 或者说通过其它接口来更新token, 让服务器为它重新生成token 我们的用户系统是这么处理了.

用户登陆时, 后台计算出一个token, 并入库, 记录生成时间, 返回token给app

app上后续操作都会需要带上这个token.  在服务端的每个接口都会判断这个token的正确性, 和是否过期.

过期了, 任何接口都会返回token过期的信息, 这时app可以选择让用户重新登陆, 或者自动重新登陆, 或者说通过其它接口来更新token, 让服务器为它重新生成token

我的疑问就是时间这里,如果写在缓存,时间到了自动清除,那么用户就要强制重新登录,这样体验肯定不好,

如果把他存到数据库里就会使得频繁的查询数据库了,这样跟Token产生的缘由不会冲突吗?Token不就是为了减少频繁访问数据库吗?

写在缓存, 自动清除, 也没毛病啊.    是否强制用户登陆这个问题, 没必有纠结, 现在很多网站和app都是这么做的, 过期了就提示用户登陆已经过期, 请重新登陆.

当然, 你实在觉得不友好, 那你完全可以要求app端自己处理啊, 发现token过期, 自动重新登陆即可.  或者是开了一新的接口来更新(重新生成)token也是可以的啊.

存到数据库, 也是可以在用户登陆时, 读取到缓存中啊.  写在缓存, 自动清除, 也没毛病啊.    是否强制用户登陆这个问题, 没必有纠结, 现在很多网站和app都是这么做的, 过期了就提示用户登陆已经过期, 请重新登陆.

当然, 你实在觉得不友好, 那你完全可以要求app端自己处理啊, 发现token过期, 自动重新登陆即可.  或者是开了一新的接口来更新(重新生成)token也是可以的啊.

存到数据库, 也是可以在用户登陆时, 读取到缓存中啊. 

谢谢了,我已经决定好怎么处理了

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新安卓软件开发学习
热门安卓软件开发学习
编程开发子分类