84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我们公司准备用前后端分离做项目, 前后端为了保持登录状态, 我看了网上很多都说的用token来保持登录, 现在我在token中直接存放md5(sessionid)可以么?有没有什么问题?
本质上前端对数据进行encrypt是降低可读性,比如用户的敏感数据,处于隐私保护的目的。假如你传递的是seesion_id的话,是没必要再进行encrypt的。至于上面有人提到的md5这之类的做法是错误的(针对传递seesion_id),因为本身seesion_id就是作为key来使用,md5属于hash的一种方式(不可逆),后端如果要使用的话也是直接拿来用,你几层md5都没有意义了(如果被劫持了,直接就用了)
你提到的token问题,在于后端如何来实现authentication部分,是恢复session来储存信息,还是使用token来验证接口调用权限。根据后端的实现方式不同而不同。
session是浏览器中放置的cookie来保存,依靠的是浏览器的cookie expire时间来控制登陆保持时间(客户端角度)。
其余的内容你参考下这个session cookie vs token
多加密几层吧,一个md5太简单了。
token你就直接在登陆 时有MD5加密 日期 就好了啊, 然后扔redis, 之后的在拦截器拦一下做个判断就好了
只要不存放敏感的内容(密码等),个人没有问题的。建议使用现在流行的 jwt,各种语言都有实现的库,使用起来还是非常的方便的。
session id就是一个token,再md5反而多余。
sessionid 本身难道不就是一个加密后明文的 token 么…对它再 md5 没必要啊
sessionid
完全可以,用jwt吧。在token 中要注意验证合法性。
本质上前端对数据进行encrypt是降低可读性,比如用户的敏感数据,处于隐私保护的目的。假如你传递的是seesion_id的话,是没必要再进行encrypt的。至于上面有人提到的md5这之类的做法是错误的(针对传递seesion_id),因为本身seesion_id就是作为key来使用,md5属于hash的一种方式(不可逆),后端如果要使用的话也是直接拿来用,你几层md5都没有意义了(如果被劫持了,直接就用了)
你提到的token问题,在于后端如何来实现authentication部分,是恢复session来储存信息,还是使用token来验证接口调用权限。根据后端的实现方式不同而不同。
session是浏览器中放置的cookie来保存,依靠的是浏览器的cookie expire时间来控制登陆保持时间(客户端角度)。
其余的内容你参考下这个session cookie vs token
多加密几层吧,一个md5太简单了。
token你就直接在登陆 时有MD5加密 日期 就好了啊, 然后扔redis, 之后的在拦截器拦一下做个判断就好了
只要不存放敏感的内容(密码等),个人没有问题的。建议使用现在流行的 jwt,各种语言都有实现的库,使用起来还是非常的方便的。
session id就是一个token,再md5反而多余。
sessionid
本身难道不就是一个加密后明文的 token 么…对它再 md5 没必要啊完全可以,用jwt吧。在token 中要注意验证合法性。