<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # session 控制 beego 內置了 session 模塊,目前 session 模塊支持的后端引擎包括 memory、cookie、file、mysql、redis、couchbase、memcache、postgres,用戶也可以根據相應的 interface 實現自己的引擎。 beego 中使用 session 相當方便,只要在 main 入口函數中設置如下: beego.BConfig.WebConfig.Session.SessionOn = true 或者通過配置文件配置如下: sessionon = true 通過這種方式就可以開啟 session,如何使用 session,請看下面的例子: ```go func (this *MainController) Get() { v := this.GetSession("asta") if v == nil { this.SetSession("asta", int(1)) this.Data["num"] = 0 } else { this.SetSession("asta", v.(int)+1) this.Data["num"] = v.(int) } this.TplName = "index.tpl" } ``` session 有幾個方便的方法: - SetSession(name string, value interface{}) - GetSession(name string) interface{} - DelSession(name string) - SessionRegenerateID() - DestroySession() session 操作主要有設置 session、獲取 session、刪除 session。 當然你可以通過下面的方式自己控制這些邏輯: sess:=this.StartSession() defer sess.SessionRelease() sess 對象具有如下方法: * sess.Set() * sess.Get() * sess.Delete() * sess.SessionID() * sess.Flush() 但是我還是建議大家采用 SetSession、GetSession、DelSession 三個方法來操作,避免自己在操作的過程中資源沒釋放的問題。 關于 Session 模塊使用中的一些參數設置: - beego.BConfig.WebConfig.Session.SessionOn 設置是否開啟 Session,默認是 false,配置文件對應的參數名:sessionon。 - beego.BConfig.WebConfig.Session.SessionProvider 設置 Session 的引擎,默認是 memory,目前支持還有 file、mysql、redis 等,配置文件對應的參數名:sessionprovider。 - beego.BConfig.WebConfig.Session.SessionName 設置 cookies 的名字,Session 默認是保存在用戶的瀏覽器 cookies 里面的,默認名是 beegosessionID,配置文件對應的參數名是:sessionname。 - beego.BConfig.WebConfig.Session.SessionGCMaxLifetime 設置 Session 過期的時間,默認值是 3600 秒,配置文件對應的參數:sessiongcmaxlifetime。 - beego.BConfig.WebConfig.Session.SessionProviderConfig 設置對應 file、mysql、redis 引擎的保存路徑或者鏈接地址,默認值是空,配置文件對應的參數:sessionproviderconfig。 - beego.BConfig.WebConfig.Session.SessionHashFunc 默認值為 sha1,采用 sha1 加密算法生產 sessionid - beego.BConfig.WebConfig.Session.SessionHashKey 默認的 key 是 beegoserversessionkey,建議用戶使用的時候修改該參數 - beego.BConfig.WebConfig.Session.SessionCookieLifeTime 設置 cookie 的過期時間,cookie 是用來存儲保存在客戶端的數據。 從 beego1.1.3 版本開始移除了第三方依賴庫,也就是如果你想使用 mysql、redis、couchbase、memcache、postgres 這些引擎,那么你首先需要安裝 go get -u github.com/astaxie/beego/session/mysql 然后在你的 main 函數中引入該庫, 和數據庫的驅動引入是一樣的: import _ "github.com/astaxie/beego/session/mysql" 當 SessionProvider 為 file SessionProviderConfig 是指保存文件的目錄,如下所示: beego.BConfig.WebConfig.Session.SessionProvider="file" beego.BConfig.WebConfig.Session.SessionProviderConfig = "./tmp" 當 SessionProvider 為 mysql 時,SessionProviderConfig 是鏈接地址,采用 [go-sql-driver](https://github.com/go-sql-driver/mysql),如下所示: beego.BConfig.WebConfig.Session.SessionProvider = "mysql" beego.BConfig.WebConfig.Session.SessionProviderConfig = "username:password@protocol(address)/dbname?param=value" 需要特別注意的是,在使用 mysql 存儲 session 信息的時候,需要事先在 mysql 創建表,建表語句如下 ``` CREATE TABLE `session` ( `session_key` char(64) NOT NULL, `session_data` blob, `session_expiry` int(11) unsigned NOT NULL, PRIMARY KEY (`session_key`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ``` 當 SessionProvider 為 redis 時,SessionProviderConfig 是 redis 的鏈接地址,采用了 [redigo](https://github.com/garyburd/redigo),如下所示: beego.BConfig.WebConfig.Session.SessionProvider = "redis" beego.BConfig.WebConfig.Session.SessionProviderConfig = "127.0.0.1:6379" 當 SessionProvider 為 memcache 時,SessionProviderConfig 是 memcache 的鏈接地址,采用了 [memcache](https://github.com/beego/memcache),如下所示: beego.BConfig.WebConfig.Session.SessionProvider = "memcache" beego.BConfig.WebConfig.Session.SessionProviderConfig = "127.0.0.1:7080" 當 SessionProvider 為 postgres 時,SessionProviderConfig 是 postgres 的鏈接地址,采用了 [postgres](https://github.com/lib/pq),如下所示: beego.BConfig.WebConfig.Session.SessionProvider = "postgresql" beego.BConfig.WebConfig.Session.SessionProviderConfig = "postgres://pqgotest:password@localhost/pqgotest?sslmode=verify-full" 當 SessionProvider 為 couchbase 時,SessionProviderConfig 是 couchbase 的鏈接地址,采用了 [couchbase](https://github.com/couchbaselabs/go-couchbase),如下所示: beego.BConfig.WebConfig.Session.SessionProvider = "couchbase" beego.BConfig.WebConfig.Session.SessionProviderConfig = "http://bucketname:bucketpass@myserver:8091" ## 特別注意點 因為 session 內部采用了 gob 來注冊存儲的對象,例如 struct,所以如果你采用了非 memory 的引擎,請自己在 main.go 的 init 里面注冊需要保存的這些結構體,不然會引起應用重啟之后出現無法解析的錯誤
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看