NutzCN Logo
精华 如何实现token登录?
发布于 2680天前 作者 SayingCode 6422 次浏览 复制 上一个帖子 下一个帖子
标签: session

应用场景:
客户端登录的时候通过post发送token信息到服务器
1.服务器根据用户的token(实质为后端的session)
2.找到该session后改过期时间,然后进行后续操作
3.要求前端不需要去手动设置http-head,而是直接传token值,由后端返回cookies...

目前已经能够理解客户端不管登录与否,只要和后端建立连接就会在后端生成一个session(前端叫做cookie),然后前端将cookie存储到文件中,后续的所有操作都在http的head部分带上该cookie;
然后问题来了:
1.如何通过客户端传一个session_id到服务端,服务器找到上次会话的信息,再次返回到客户端?
2.如何该服务端存储的session过期时间?
3.这个session是否有个单例的manager?

目前思路比较混乱,望解惑;

8 回复

一定要找上次的会话信息吗?? 里面存了什么很关键的东西???

我觉得呢, 只需要一个表 token --> uid

根据token找到uid, 然后使当前会话变成登录状态, 然后把cookie返回去(不需要主动返回,因为就是tomcat/shiro的session cookie)

找上次会话的原因是我想实现改过期时间的逻辑;
不过听你下面说的也很有道理,其实客户端和服务器建立连接就会产生一个新的session;我们只需要往新的session里面写入已经登录的信息就够了,而且新的session过期时间又会重新计时;
一直想的如果能找到上一次的session这样服务器就不用创建session了,但是这个是tomcat管理的,貌似走入误区了;

那我就直接在user表里面加入一个token字段了,根据token来登录,登录后更新下该字段,并返回客户端,客户端下次用最新的token登录;一下子就豁然开朗.....

谢谢~

@sayingcode 客户端验证成功后服务器生成随机的token,把随机token与用户id,过期时间写入数据库或是redis并且返回客户端储存,客户端每次请求带上这个token,为安全考虑也可以不传递token.当做密匙,加密处理后校验整个链接的完整性

来自炫酷的 NutzCN

json web token 好像符合你的需求

赞同json web token

redis 如果把token设计成 可以动态更新token过期时间而不是jwt那种只能从新生成新的token,如果写个processor 更新token的expire 这样会不会很浪费性能,在访问量频繁的情况下

能有多频繁,呵呵

  • -好吧 大佬说没事就好了
添加回复
请先登陆
回到顶部