### Session
為方便應用實現,dotweb內置實現了Session機制,目前支持Runtime與Redis兩種存儲模式
用戶也可通過實現SessionStore接口實現自定義Session存儲
* 除Session外,也可以使用dotweb的jwt中間件來實現用戶身份狀態維護
1、開啟Session支持
~~~
//設置Session開關
app.HttpServer.SetEnabledSession(true)
~~~
如果需要使用Session,需要代碼顯示設置,默認情況下Session是關閉狀態
2、設置Session存儲模式
~~~
//runtime mode
app.HttpServer.SetSessionConfig(session.NewDefaultRuntimeConfig())
//redis mode
app.HttpServer.SetSessionConfig(session.NewDefaultRedisConfig("redis url"))
~~~
通過SetSessionConfig設置存儲模式
3、使用
~~~
func (ctx dotweb.Context) error{
err := ctx.Session().Set("username", user)
if err != nil {
ctx.WriteString("session set error => ", err, "\r\n")
}
c := ctx.Session().Get("username")
if c != nil {
userRead = c.(UserInfo)
} else {
ctx.WriteString("session read failed, get nil", "\r\n")
}
ctx.WriteString("userinfo", userRead)
return nil
}
~~~
在handler內,通過Context.Session()獲取當前請求的Session對象,然后可以通過Session提供的接口進行Session操作
~~~
Set(key, value interface{}) error
Get(key interface{}) interface{}
GetString(key interface{}) string
GetInt(key interface{}) int
GetInt64(key interface{}) int64
Remove(key interface{}) error
Clear() error
SessionID() string
Count() int
~~~