介绍
基于GoFrame
框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,通过Redis支持集群模式;使用简单,大家可以放心使用;
- github地址:https://github.com/goflyfox/gtoken
- gitee地址:https://gitee.com/goflyfox/gtoken
全面适配GoFrame v2.0.0 ; GoFrame v1.X.X 请使用gtoken v1.4.X相关版本。
gtoken优势
- gtoken支撑单点应用使用内存存储,也支持集群使用redis存储;完全适用于企业生产级使用;
- 有效的避免了jwt服务端无法退出问题;
- 解决jwt无法作废已颁布的令牌,只能等到令牌过期问题;
- 通过用户扩展信息存储在服务端,有效规避了jwt携带大量用户扩展信息导致降低传输效率问题;
- 有效避免jwt需要客户端实现续签功能,增加客户端复杂度;支持服务端自动续期,客户端不需要关心续签逻辑;
特性说明
- 支持token认证,不强依赖于session和cookie,适用jwt和session认证所有场景;
- 支持单机gcache和集群gredis模式;
# 缓存模式 1 gcache 2 gredis CacheMode = 2 支持服务端缓存自动续期功能 // 注:通过MaxRefresh,默认当用户第五天访问时,自动续期 // 超时时间 默认10天 Timeout int // 缓存刷新时间 默认为超时时间的一半 MaxRefresh int
- 支持分组拦截、全局拦截、深度路径拦截,便于根据个人需求定制拦截器;建议使用分组拦截方式;
- 框架使用简单,只需要设置登录验证方法以及登录、登出路径即可;
- 在
gtoken v1.4.0
版本开始支持分组中间件方式实现,但依然兼容全局和深度中间件实现方式;
6 Comments
iamyl
Token应该是个无状态的
FLY的狐狸
其实还是要看具体需求和场景,一味追求无状态可能会导致更大的成本。
iamyl
如果token不是无状态,岂不是和cookie,session一样的结果了.
佟巨华
我觉得有状态更好,很符合我这边的业务需求,
王中阳Go
【视频教程】GoFrame集成gtoken视频详解,包括v2版本和v1版本。 https://www.bilibili.com/video/BV1v841157Bh/
cz_eric
坑死了,登录生成的token,在退出登录的时候会报错:
"token contains an invalid number of segments"