在我的客服系統項目中,我使用的gin框架沒有自帶session功能,需要經過下麵的整合處理 使用的是 github.com/gin-contrib/sessions 在我的tools包下 package tools import ( "github.com/gin-contrib/sessions" ...
在我的客服系統項目中,我使用的gin框架沒有自帶session功能,需要經過下麵的整合處理
使用的是 github.com/gin-contrib/sessions
在我的tools包下
package tools import ( "github.com/gin-contrib/sessions" "github.com/gin-contrib/sessions/cookie" "github.com/gin-gonic/gin" ) // 中間件,處理session func Session(keyPairs string) gin.HandlerFunc { store := SessionConfig() return sessions.Sessions(keyPairs, store) } func SessionConfig() sessions.Store { sessionMaxAge := 3600 sessionSecret := "kefu" var store sessions.Store store = cookie.NewStore([]byte(sessionSecret)) store.Options(sessions.Options{ MaxAge: sessionMaxAge, //seconds Path: "/", }) return store }
gin框架use一下這個中間件
engine.Use(tools.Session("kefu"))
實際存儲數據和讀取數據
func GetCaptchaV2(c *gin.Context) { session := sessions.Default(c) session.Set("name", "red") session.Save() }
func GetCaptchaV2(c *gin.Context) { session := sessions.Default(c) session.Get("name") }
上面就是存儲一個鍵值對,然後讀取這個key的值,這個是基於cookie實現的,也就是內容被加密存儲在cookie裡面了。
每次從cookie里讀取並解密出來,還有其他存儲引擎就不進行測試了。
利用這個seesion功能可以實現登錄狀態驗證,或者我後面的驗證碼的驗證實現。