beego session 根本无法正常使用

app.conf


SessionOn = true
SessionProvider = file
SessionProviderConfig = ./session
SessionName = liveSessionID
SessionGCMaxLifetime = 3600
SessionAutoSetCookie = false
EnableSidInHttpHeader = true
SessionNameInHttpHeader = Live-Session-Token

controllers/user.go


func (uc *UserController) Login(){
uc.SetSession("uid", user.Id)
}

func (uc *UserController) Logout(){
uc.DelSession("uid")
uc.DestroySession()
}

这个DelSession和DestroySession根本没有起任何作用,执行后依然可以GetSession("uid"),而且sessionId同名的文件依然存在。


我把app.conf配置修改为:
SessionProvider = redis
SessionProviderConfig = 127.0.0.1:6379
编译的时候直接panic了


panic: session: unknown provide "redis" (forgotten import?)

goroutine 1 [running]:
panic(0x9176e0, 0xc4202ad2f0)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
bmob/vendor/github.com/astaxie/beego.initBeforeHTTPRun()
/home/ice/Dropbox/mygo/src/project/vendor/github.com/astaxie/beego/beego.go:81 +0x276
bmob/vendor/github.com/astaxie/beego.Run(0x0, 0x0, 0x0)
/home/ice/Dropbox/mygo/src/project/vendor/github.com/astaxie/beego/beego.go:55 +0x26
main.main()
/home/ice/Dropbox/mygo/src/project/liveapi/main.go:15 +0xda
已邀请:

傅小黑

赞同来自: niugou 皇虫

如果你要是用 redis 等驱动的 session,需要:


import _ "github.com/astaxie/beego/session/redis"

除了 file,memory 和 cookie 的支持,其他都需要引入 beego/session/ 下的包

edwinxie - 今年,我站起来了

赞同来自:

另外,实际项目中,seesion这块的逻辑也还算简单,尽量根据项目需求自行开发,不用任何框架集成的session模块。

要回复问题请先登录注册