gtoken
This version of the main cache redis added support for project cluster deployment
Introduction
Based token gf plug frame, achieved by the authentication server authentication token;
- Gcache supports stand-alone and cluster gredis mode;
# 配置文件
# 缓存模式 1 gcache 2 gredis
cache-mode = 2
- It supports simple authentication token
- Using simple framework, only login authentication method, and login, logout, the path to the interception;
Installation Tutorial
gopath mode: go get https://github.comgoflyfox/gtoken
Or add the use of go.mod:require github.comgoflyfox/gtoken last
Instructions for use
Only you need to configure the login path, the path out, blocking the path and log on to achieve parity
// 启动gtoken gtoken := >oken.GfToken{ LoginPath: "/login", LoginBeforeFunc: loginFunc, LogoutPath: "/user/logout", AuthPaths: g.SliceStr{"/user/*", "/system/*"}, } gtoken.Start()
Login method implementation
func Login(r *ghttp.Request) (string, interface{}) { username := r.GetPostString("username") passwd := r.GetPostString("passwd") // TODO 进行登录校验 return username, "" }
Logic test
Api_test.go run tests and view the results; validation logic Description:
- Access to user information, tips do not carry token
- Once logged in, carry normal token access
- Logout successful
- Before carrying token visit, suggesting that the unregistered
--- 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":""}
thank
- gf framework https://github.com/gogf/gf