gtoken v1.3.15 发布,基于 GoFrame 的 token 插件
本次更新:
1. gf升级为V1.12.1
2. 加入全局拦截支持,方便调整认证和其他中间件执行顺序
// 启动gtoken gtoken := >oken.GfToken{ LoginPath: "/login", LoginBeforeFunc: loginFunc, LogoutPath: "/user/logout", AuthPaths: g.SliceStr{"/user", "/system"}, // 这里是按照前缀拦截,拦截/user /user/list /user/add ... GlobalMiddleware: true, // 开启全局拦截,默认关闭 } gtoken.Start()
gtoken介绍
基于gf框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,并支持集群模式;使用简单,大家可以放心使用;
- 支持单机gcache和集群gredis模式;
# 配置文件 # 缓存模式 1 gcache 2 gredis cache-mode = 2
- 支持简单token认证
- 加入缓存自动续期功能
// 注:通过MaxRefresh,默认当用户第五天访问时,自动再进行五天续期 // 超时时间 默认10天 Timeout int // 缓存刷新时间 默认为超时时间的一半 MaxRefresh int
- 支持全局拦截或者深度路径拦截,便于根据个人需求定制拦截器
// 是否是全局认证 GlobalMiddleware bool
- 框架使用简单,只需要设置登录验证方法以及登录、登出、拦截路径即可;
- github地址:https://github.com/goflyfox/gtoken
- gitee地址:https://gitee.com/goflyfox/gtoken
gtoken优势
- 有效的避免了jwt服务端无法退出问题;
- 可以解决jwt无法作废已颁布的令牌;
- 用户扩展信息仍存储在服务端,可有效的减少传输空间;
- gtoken支撑单点应用使用内存存储,也支持集群使用redis存储;
- 支持缓存自动续期,并且不需要客户端进行实现;
安装教程
- gopath模式:
go get github.com/goflyfox/gtoken
- 或者 使用go.mod添加 :
require github.com/goflyfox/gtoken latest
使用说明
只需要配置登录路径、登出路径、拦截路径以及登录校验实现即可
// 启动gtoken gtoken := >oken.GfToken{ LoginPath: "/login", LoginBeforeFunc: loginFunc, LogoutPath: "/user/logout", AuthPaths: g.SliceStr{"/user", "/system"}, // 这里是按照前缀拦截,拦截/user /user/list /user/add ... GlobalMiddleware: true, // 开启全局拦截,默认关闭 } gtoken.Start()
登录方法实现
func Login(r *ghttp.Request) (string, interface{}) { username := r.GetPostString("username") passwd := r.GetPostString("passwd") // TODO 进行登录校验 return username, "" }
逻辑测试
可运行api_test.go进行测试并查看结果;验证逻辑说明:
- 访问用户信息,提示未携带token
- 登录后,携带token访问正常
- 登出成功
- 携带之前token访问,提示未登录
--- PASS: TestSystemUser (0.00s) api_test.go:43: 1. not login and visit user api_test.go:50: {"code":-1,"data":"","msg":"query token fail"} api_test.go:63: 2. execute login and visit user api_test.go:66: {"code":0,"msg":"success","data":"system user"} api_test.go:72: 3. execute logout api_test.go:75: {"code":0,"msg":"success","data":"logout success"} api_test.go:81: 4. visit user api_test.go:86: {"code":-1,"msg":"login timeout or not login","data":""}
感谢
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
一篇文章教会你使用Python定时抓取微博评论
【Part1——理论篇】 试想一个问题,如果我们要抓取某个微博大V微博的评论数据,应该怎么实现呢?最简单的做法就是找到微博评论数据接口,然后通过改变参数来获取最新数据并保存。首先从微博api寻找抓取评论的接口,如下图所示。 但是很不幸,该接口频率受限,抓不了几次就被禁了,还没有开始起飞,就凉凉了。 接下来小编又选择微博的移动端网站,先登录,然后找到我们想要抓取评论的微博,打开浏览器自带流量分析工具,一直下拉评论,找到评论数据接口,如下图所示。 之后点击“参数”选项卡,可以看到参数为下图所示的内容: 可以看到总共有4个参数,其中第1、2个参数为该条微博的id,就像人的身份证号一样,这个相当于该条微博的“身份证号”,max_id是变换页码的参数,每次都要变化,下次的max_id参数值在本次请求的返回数据中。 【Part2——实战篇】 有了上文的基础之后,下面我们开始撸代码,使用Python进行实现。 1、首先区分url,第一次不需要max_id,第二次需要用第一次返回的max_id。 2、请求的时候需要带上cookie数据,微博cookie的有效期比较长,足够抓一条微博的评论数据了,coo...
- 下一篇
gmanager v1.1.4 发布,基于 GoFrame 的管理平台
更新说明 gf升级到最新版本V1.12.1 解决前后端分离部署认证跨域问题 GoFrame教程已录制完成,欢迎大家入坑学习: https://my.oschina.net/flyoffox/blog/3209622 上一版本更新 1. 安装gf官网建议项目目录进行重构 2. 使用gf gen model生成model层,但json使用驼峰格式 3. gf升级到最新版本V1.11.4 gmanager 基于gf框架的管理后台,支持登录、认证、组织机构、用户帐号、角色权限、菜单、操作日志 gmanager已全面支持前后端分离,同时也支持服务端模板部署; 登录组件使用gtoken完美支持集群部署 安装教程 代码地址 github地址:https://github.com/goflyfox/gmanager gitee地址:https://gitee.com/goflyfox/gmanager 下载部署 从git下载项目: git clonehttps://github.com/goflyfox/gmanager 安装mysql数据库,创建db,运行deploy下gmanager.sql脚本 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装Docker,最新的服务器搭配容器使用
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7设置SWAP分区,小内存服务器的救世主