使用token进行登录验证的一些疑问

最近在学习后端的有关知识,在学习SSM的过程中时,因为要给客户端做一个登录验证的功能,所以想到了用token来进行验证,使用了auth0,通过用户id加密来生成token。于是产生了疑问,生成的token除了返回给客户端外,还需要存储到数据库或者redis中吗?还是直接将接收到的token进行解密验证就可以了呢?

阅读 3.8k
4 个回答

如果是登录验证的token,可以考虑使用jwt来做,这样登录完成之后,之后的请求在header头了带着这个token,就可以解析出用户名信息。
如果是一般的请求要加token,以防止接口被刷或者防止接口参数串改,就可以前后端使用一套加密规则,讲参数以及请求的过期时间等参数加密生成一个token传给后端,后端用相同的规则生成token进行比对。如果参数被串改,或者已经超过请求的时间了,都报出签名错误,可以防止接口被刷,和接口参数被串改。

直接要用的时候解密就好了
存数据库好像没什么意义,难道用的还得取一次数据库,多浪费 io

token能解密?不怕被破解?

通过加密ID生成的token是固定的,没必要存数据库,但是问题就是没有时效性。
你可以试试基于随机字符串作为Token,增加时效性

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题