douji5523 2015-06-03 12:01
浏览 516
已采纳

Beego:如何在会话超时时重定向到其他页面

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

  • 写回答

1条回答 默认 最新

  • dtrz99313 2015-08-01 08:19
    关注

    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"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?