go-admin icon indicating copy to clipboard operation
go-admin copied to clipboard

保存token信息的介质能否支持可配

Open baijinge0310 opened this issue 3 years ago • 2 comments

需求描述

我在使用多节点部署服务时,会出现大面积鉴权失败的现象,看了看源码好像是把token信息存在了服务内存中,由于内存不共享导致的 我理解这个包只能用内存,不能强制性需要额外扩展的模块

解决方案

可不可以在初始化时,增加token保存介质的可配置项,支持保存在redis中

baijinge0310 avatar Jun 07 '22 08:06 baijinge0310

@baijinge0310 是指用户 sessionID 吗?存于 goadmin_session 表。能否贴点代码或图片看下。

chenhg5 avatar Aug 24 '22 14:08 chenhg5

  1. new一个页面时会设置一个隐藏token new_tmpl

  2. AddToken时会往接收到请求的pod你内存中添加,而此时其他pod的内存中不会有 addtoken

  3. 在页面的curd操作时,会触发CheckToken,如果恰好又发送到了同一个pod,那么可以返回True,如果分发到其他内存中没有这个token的pod,则会返回False导致鉴权失败 checktoken

  4. 一些CheckToken触发的位置 alert

baijinge0310 avatar Aug 25 '22 01:08 baijinge0310