gtoken此版本主要加入了缓存redis支持,便于项目集群部署 介绍基于gf框架的token插件,通过服务端验证方式实现token认证;
安装教程gopath模式: 或者 使用go.mod添加 : 使用说明只需要配置登录路径、登出路径、拦截路径以及登录校验实现即可 // 启动gtoken
gtoken := >oken.GfToken{
LoginPath: "/login",
LoginBeforeFunc: loginFunc,
LogoutPath: "/user/logout",
AuthPaths: g.SliceStr{"/user/*", "/system/*"},
}
gtoken.Start()
登录方法实现 func Login(r *ghttp.Request) (string, interface{}) {
username := r.GetPostString("username")
passwd := r.GetPostString("passwd")
// TODO 进行登录校验
return username, ""
}
逻辑测试可运行api_test.go进行测试并查看结果;验证逻辑说明:
--- 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":""}
感谢 |