gtoken 基于 gf 框架的 token 插件 gtoken

blov • 2673 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
# gtoken 介绍 基于gf框架的token插件,通过服务端验证方式实现token认证;已完全可以支撑线上token认证,并支持集群模式;使用简单,大家可以放心使用; 1. 支持单机gcache和集群gredis模式; <pre><code># 配置文件 # 缓存模式 1 gcache 2 gredis cache-mode = 2 </code></pre> 1. 支持简单token认证 2. 加入缓存自动续期功能 <pre><code>// 注:通过MaxRefresh,默认当用户第五天访问时,自动再进行五天续期 // 超时时间 默认10天 Timeout int // 缓存刷新时间 默认为超时时间的一半 MaxRefresh int </code></pre> 1. 框架使用简单,只需要设置登录验证方法以及登录、登出、拦截路径即可; #### 安装教程 gopath模式: `go get https://github.comgoflyfox/gtoken` 或者 使用go.mod添加 :`require github.comgoflyfox/gtoken last` #### 使用说明 只需要配置登录路径、登出路径、拦截路径以及登录校验实现即可 <pre> // 启动gtoken gtoken := &amp;gtoken.GfToken{ LoginPath: &#34;/login&#34;, LoginBeforeFunc: loginFunc, LogoutPath: &#34;/user/logout&#34;, AuthPaths: g.SliceStr{&#34;/user/*&#34;, &#34;/system/*&#34;}, } gtoken.Start()</pre> 登录方法实现 <pre>func Login(r *ghttp.Request) (string, interface{}) { username := r.GetPostString(&#34;username&#34;) passwd := r.GetPostString(&#34;passwd&#34;) // TODO 进行登录校验 return username, &#34;&#34; }</pre> #### 逻辑测试 可运行api_test.go进行测试并查看结果;验证逻辑说明: 1. 访问用户信息,提示未携带token 2. 登录后,携带token访问正常 3. 登出成功 4. 携带之前token访问,提示未登录 <pre>--- PASS: TestSystemUser (0.00s) api_test.go:43: 1. not login and visit user api_test.go:50: {&#34;code&#34;:-1,&#34;data&#34;:&#34;&#34;,&#34;msg&#34;:&#34;query token fail&#34;} api_test.go:63: 2. execute login and visit user api_test.go:66: {&#34;code&#34;:0,&#34;msg&#34;:&#34;success&#34;,&#34;data&#34;:&#34;system user&#34;} api_test.go:72: 3. execute logout api_test.go:75: {&#34;code&#34;:0,&#34;msg&#34;:&#34;success&#34;,&#34;data&#34;:&#34;logout success&#34;} api_test.go:81: 4. visit user api_test.go:86: {&#34;code&#34;:-1,&#34;msg&#34;:&#34;login timeout or not login&#34;,&#34;data&#34;:&#34;&#34;}</pre> #### 感谢 1. gf框架 [https://github.com/gogf/gf](https://github.com/gogf/gf)
授权协议:
Apache 2.0
开发语言:
Google Go 查看源码»
操作系统:
跨平台
2673 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传