i am handling session variable by setting time out using
globalSessions, _ = session.NewManager("memory", `{"cookieName":"gosessionid", "enableSetCookie,omitempty": true, "gclifetime":5, "maxLifetime": 5, "secure": false, "sessionIDHashFunc": "sha1", "sessionIDHashKey": "", "cookieLifeTime": 3600, "providerConfig": ""}`)
go globalSessions.GC()
sess, _ := globalSessions.SessionStart(c.Ctx.ResponseWriter, c.Ctx.Request)
defer sess.SessionRelease(c.Ctx.ResponseWriter)
errU := sess.Set("user1", c.Input().Get("userName"))
if errU != nil {
fmt.Println("error in settng value")
}
now how to redirect back to specific page on time out of the current page. I have this application in beego
beego has method Prepare()
to do this , see doc
Prepare()
You can use this function for extension, it will execute before the methods below. You can overwrite it to implement functions such as user validation.
code
type MainController struct {
beego.Controller
}
func (c *MainController) Prepare() {
if timeOut {
c.Redirect("login.html", 302)
}
}
func (c *MainController) Index() {
c.TplNames = "index.tpl"
}