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 皇虫 haoc7

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

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

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

edwinxie - 今年,我站起来了

赞同来自:

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

KevingoCao - 一个想躺着敲代码的程序员

赞同来自:

用了beego的session, 确实是简单的很, session的接口紧紧提供了get,set,del,destory几个功能, 感觉实际使用中还是有一些接口没实现 例如getAll,提供session[key]的获取实现

要回复问题请先登录注册