gtoken v2.0.0-beta 发布,基于 GoFrame 的 token 插件
本次更新:
此版本主要架构全面更新,发布v2.X.X,不再兼容v1.X.X,升级需谨慎
- 架构全面升级,版本更新到v2.X.X,不再兼容v1.X.X
- 通过
go get -u -v github.com/goflyfox/gtoken/v2
获取最新版本,升级需谨慎 - 独立Token、Codec、Cache接口,方便扩展
- 采用goframe标准中间件方式认证,调用更加直观
- 具体使用细节见项目ReadMe文件
gtoken
介绍
基于GoFrame
框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,通过Redis支持集群模式;使用简单,大家可以放心使用;
- GoFrame v2.X.X 全面适配
- GoFrame v1.X.X 请使用gtoken v1.4.X相关版本;
- Github地址:https://github.com/goflyfox/gtoken
- Gitee地址:https://gitee.com/goflyfox/gtoken
gtoken优势
- gtoken支撑单点应用测试使用内存存储,支持个人小项目文件存储,也支持企业集群使用redis存储;完全适用于企业生产级使用;
- 有效的避免了jwt服务端无法退出问题;
- 解决jwt无法作废已颁布的令牌,只能等到令牌过期问题;
- 通过用户扩展信息存储在服务端,有效规避了jwt携带大量用户扩展信息导致降低传输效率问题;
- 有效避免jwt需要客户端实现续签功能,增加客户端复杂度;支持服务端自动续期,客户端不需要关心续签逻辑;
特性说明
- 支持token认证,不强依赖于session和cookie,适用jwt和session认证所有场景;
- 支持单机gcache和集群gredis模式;
# 缓存模式 1 gcache 2 gredis 3 fileCache CacheMode = 2
- 支持服务端缓存自动续期功能
// 注:通过MaxRefresh,默认当用户第五天访问时,自动续期 // 超时时间 默认10天 Timeout int // 缓存刷新时间 默认为超时时间的一半 MaxRefresh int
- 框架使用简单,只需要认证拦截器注册、登录Token生成、登出Token销毁即可;
安装教程
获取最新版本: go get -u -v github.com/goflyfox/gtoken/v2
使用说明
- 初始化配置gtoken.Options{}, 并创建gtoken对象(
gtoken.NewDefaultToken
);参数详情见《配置项说明》部分 - 注册认证中间件
gtoken.NewDefaultMiddleware(gfToken).Auth
- 登陆认证成功后,生成Token(
gfToken.Generate
)并返回给客户端 - 登出时销毁Token(
gfToken.Destroy
)
// 创建gtoken对象 gftoken := gtoken.NewDefaultToken(gtoken.Options{}) s.Group("/", func(group *ghttp.RouterGroup) { group.Middleware(CORS) // 注册GfToken中间件 group.Middleware(gtoken.NewDefaultMiddleware(gfToken).Auth) group.ALL("/system/data", func(r *ghttp.Request) { // 获取登陆信息 _, data, err := gfToken.Get(r.Context(), r.GetCtxVar(gtoken.KeyUserKey).String()) if err != nil { r.Response.WriteJson(RespError(err)) } r.Response.WriteJson(RespSuccess(data)) }) group.ALL("/user/logout", func(r *ghttp.Request) { // 登出销毁Token _ = gfToken.Destroy(ctx, r.GetCtxVar(gtoken.KeyUserKey).String()) r.Response.WriteJson(RespSuccess("user logout")) }) }) s.BindHandler("/login", func(r *ghttp.Request) { // 认证成功调用Generate生成Token token, err := gfToken.Generate(ctx, username, "1") if err != nil { r.Response.WriteJson(RespError(err)) r.ExitAll() } r.Response.WriteJson(RespSuccess(g.Map{ gtoken.KeyUserKey: username, gtoken.KeyToken: token, })) })
配置项说明
具体可参考GfToken
结构体,字段解释如下:
名称 | 配置字段 | 说明 |
---|---|---|
缓存模式 | CacheMode | 1 gcache 2 gredis 3 fileCache 默认1 |
缓存key | CachePreKey | 默认缓存前缀GToken: |
超时时间 | Timeout | 默认10天(毫秒) |
缓存刷新时间 | MaxRefresh | 默认为超时时间的一半(毫秒) |
Token分隔符 | TokenDelimiter | 默认_ |
Token加密key | EncryptKey | 默认12345678912345678912345678912345 |
是否支持多端登录 | MultiLogin | 默认false |
拦截排除地址 | excludePaths | 此路径列表不进行认证 |
示例
使用示例,请先参考gtoken/example/sample/test/backend/server.go
文件
感谢

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
🔥 Solon AI 正式发布,支持 Java8+、RAG、MCP、模力方舟
Solon AI 正式发布了(版号,随 Solon v3.3.1)。历时小半年。 1、简介 Solon AI 是一个 Java AI(智能体) 全场景应用开发框架,提供有丰富的接口能力。主要支持的的智能体开发场景有:Chat;RAG;MCP;AiFlow。 其中 ChatModel 是 Solon AI 的核心模型接口(其它暂略),通过方言的方式(ChatDialect)可适配各种环境(或平台)提供的大语言模型。 2、历时回顾 时间 回顾 备注 2025-01 中 Solon Flow 项目启动 将为 Solon AI 编排提供支持 2025-01 底 Solon AI 项目启动 2025-02 中 设计 Solon AI 开放接口,和适配机制 2025-03 中 Solon Expression 项目启动 为 Solon AI RAG 知识库,提供统一的过滤表达式支持 2025-04 初 Solon AI MCP 项目启动 2025-05 初 Solon Flow Designer 项目启动 (由 广东越洋科技有限公司 供献代码) 2025-05 中 Solon AI Flow...
- 下一篇
Python 3.14.0 发布首个 Beta 版本,支持 Zstandard 压缩算法
Python 官方发布了 Python 3.14.0 的首个 Beta 版本。这个版本带来了众多新特性和改进。 1. 延迟评估类型注解 (PEP 649) 类型注解的评估现在被延迟,这改进了使用注解的语义。这意味着类型注解将不再在模块导入时被立即评估,而是在需要时才进行评估,这可以提高性能并解决一些循环引用问题。 2. 模板字符串字面量 (PEP 750) 引入了模板字符串字面量(t-strings)用于自定义字符串处理,使用类似于 f-strings 的熟悉语法。这为字符串处理提供了更多的灵活性和可能性。 3. Zstandard 压缩算法支持 (PEP 784) 新增compression.zstd模块,提供对 Zstandard 压缩算法的支持。Zstandard 是一种快速且高效的压缩算法,现在可以直接在 Python 标准库中使用。 4. 简化的异常表达式 (PEP 758) except和except*表达式现在可以省略括号,使代码更加简洁。 5. REPL 语法高亮和 CLI 颜色支持 Python REPL 现在支持语法高亮,同时unittest、argparse、js...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)