会话控制
3 分钟阅读
Session control 会话控制
Session control 会话控制
Beego has a built-in session module that supports memory, file, mysql, redis, couchbase, memcache and postgres as the save provider. Other providers can be implemented according to the interface.
Beego 具有一个内建的会话模块,支持内存、文件、数据库、redis、couchbase、memcache 和 postgre 作为保存方式。其他方式可以根据接口来定。
To use session in Beego switch it on in the main function:
在 Go 中使用会话时,在主函数中打开它:
web.BConfig.WebConfig.Session.SessionOn = true
Or it can be activated in the configuration file:
或者它可以在配置文件中:
SessionOn = true
After being switched on, session can used be used like this:
打开后,会话可以像这样使用:
|
|
There are several useful methods to handle session:
有几个有用的方法来处理会话:
- SetSession(name string, value interface{}) SetSession(name string, value interface)
- GetSession(name string) interface{}
- DelSession(name string)
- SessionRegenerateID()
- DestroySession() Session()
The most commonly used methods are SetSession
, GetSession
, and DelSession
.
最常用的方法是 SetSession
、 GetSession
和 DelSession
。
Custom logic can also be used:
也可以使用自定义逻辑:
sess := this.StartSession()
defer sess.SessionRelease()
sess object has following methods:
sess 对象具有以下方法:
- Set
- Get
- Delete
- SessionID
- SessionRelease
- Flush
SetSession, GetSession and DelSession methods are recommended for session operation as it will release resource automatically.
建议使用 SetSession、GetSession 和 DelSession 方法进行会话操作,因为它会自动释放资源。
Here are some parameters used in the Session module:
以下是 Session 模块中使用的一些参数:
SessionOn
Enables Session. Default value is
false
. Parameter name in configuration file:SessionOn
启用 Session。默认值为
false
。配置文件中的参数名称:SessionOn
SessionProvider Sets Session provider. Set to
memory
by default.File
,mysql
andredis
are also supported. Parameter name in configuration file:sessionprovider
. SessionProvider 设置会话提供程序。默认设置为memory
。还支持File
、mysql
和redis
。配置文件中的参数名称:sessionprovider
。SessionName Sets the cookie name. Session is stored in browser’s cookies by default. The default name is beegosessionID. Parameter name in configuration file:
sessionname
. SessionName 设置 cookie 名称。默认情况下,会话存储在浏览器的 cookie 中。默认名称为 beegosessionID。配置文件中的参数名称:sessionname
。SessionGCMaxLifetime Sets the Session expire time. Default value is
3600s
. Parameter name in configuration file:sessiongcmaxlifetime
. SessionGCMaxLifetime 设置会话过期时间。默认值为3600s
。配置文件中的参数名称:sessiongcmaxlifetime
。SessionProviderConfig Sets the save path or connection string for file, mysql or redis. Default value is empty. Parameter name in configuration file:
sessionproviderconfig
. SessionProviderConfig 设置文件、mysql 或 redis 的保存路径或连接字符串。默认值为空。配置文件中的参数名称:sessionproviderconfig
。SessionHashFunc Sets the function used to generate sessionid. The default value is
sha1
. SessionHashFunc 设置用于生成 sessionid 的函数。默认值为sha1
。SessionCookieLifeTime Sets the cookie expire time. The cookie is used to store data in client. SessionCookieLifeTime 设置 cookie 过期时间。cookie 用于在客户端存储数据。
Package Installation 软件包安装
If you are not using Go modules, manual installation may be required. 如果您未使用 Go 模块,可能需要手动安装。
Note: Beego >= 1.1.3 removed all dependencies 注意:Beego >= 1.1.3 已删除所有依赖项
|
|
Example Usage 示例用法
Couchbase
SessionProviderConfig is connection address using couchbase. SessionProviderConfig 是使用 couchbase 的连接地址。
|
|
File
|
|
Memcache
SessionProviderConfig is the connection address using memcache. SessionProviderConfig 是使用 memcache 的连接地址。
|
|
MySQL
SessionProviderConfig is the connection address using go-sql-driver. SessionProviderConfig 是使用 go-sql-driver 的连接地址。
|
|
Postgres
SessionProviderConfig is the connection address using postgres. SessionProviderConfig 是使用 postgres 的连接地址。
|
|
Redis
SessionProviderConfig is the connection address using redigo. SessionProviderConfig 是使用 redigo 的连接地址。
|
|
Note: 注意:
Session uses gob
to register objects. When using a session engine other than memory
, objects must be registered in session before they can be used. Use gob.Register()
to register them in init()
function.
会话使用 gob
来注册对象。当使用除 memory
之外的会话引擎时,必须在会话中注册对象才能使用它们。使用 gob.Register()
在 init()
函数中注册它们。