redis怎么保存session Openresty怎么跟后端tomcat共用session?
Openresty怎么跟后端tomcat共用session?
OpenResty和Tomcat分工不同。像这种异构模式,如果要共享会话会话,使用传统的Cookie模式是非常昂贵的。
那么如何实现这种异构或者集群的分布式环境,或者不同域名之间的会话共享呢?要了解这个问题,首先要了解Session的工作原理。
会话存储在服务器端,存储一般是内存或文件的形式。服务器可以存储许多会话。如果我们需要在多个会话中操作一个特定用户的会话,我们必须知道这个会话的唯一标识。这个标识符是SessionID。不同的服务器/容器有不同的算法来生成SessionID。启用会话后,浏览器发送一个请求,SessionID被写入用户的Cookie ;的浏览器。来自浏览器的后续请求会将Cookie附加到请求头,并将其传递给服务器。服务器可以根据这个SessionID找到服务器对应的会话进行操作。
这样,只要我们能共享SessionID,会话就能被共享,所以我们可以采用以下方案:
1、会话入库存储
将会话保存在数据库中,这样OpenResty和Tomcat都可以操作数据库,轻松取出数据库中的会话。
2.会话存储在NoSQL。
这个方案类似于会话仓储,原理是一样的,只不过我们用的是NoSQL(比如R
Token流程是什么?怎么解决超时问题?
令牌的过程可以通过分析登录过程、退出过程和替换令牌的过程来讨论。
登录流程用户发送登录请求。
认证系统验证用户的登录查询数据库是否存在。
如果用户存在,就会生成一个令牌并存储在Redis中,然后返回给客户端。
如果用户不存在,会提示登录失败。
验证令牌客户端
将令牌密钥附加到标头。
计算机网络服务器
从标头中取出令牌密钥。
通过令牌密钥和Redis中的相关t确定匹配的信息。
退出请求过程的前端发送退出请求。
认证系统验证令牌信息-从Redis查询相关令牌信息。
如果令牌无效,则表明令牌的前端交换失败。
如果令牌有效,则删除令牌并提示前端成功退出。
下面讨论替换令牌的过程,作为令牌超时的解决方案。
让 让我们来谈谈后端处理流程:
前端请求替换令牌
认证系统验证相关的redis信息。
如果令牌无效,替换将会失败。
如果令牌有效,从redis中删除相关redis,返回前端新令牌。
替换令牌前端处理流程
前端获取令牌,并在登录成功后将其设置在cookie中。
请求服务接口时获取令牌,判断是否该交换令牌。
如果可以调用替换令牌接口,请重新生成令牌并将前端设置返回给cookie。
以上是令牌的请求流程和令牌超时的解决方法!!
希望能帮到你!!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。