我们可以controller获得Ctx,然后进行后续操作,比如设置cookie。
- func (c *LoginController) Post() {
- c.Ctx.SetCookie("uname", uname, maxAge, "/")
- }
同时,我们也可以通过获取cookie中的值:
- func (c *LoginController) Post() {
- c.ctx.Request.Cookie("uname")
- }
但是,在不同版本中对应的ctx的类型和package有所不同。
在老版本中是通过引入beego包就可以直接使用beego.Context获取的到。
比如:
- import "github.com/astaxie/beego"
- func checkAccount(ctx *beego.Context) bool {}
但是,在新版本中只能新引入另外一个包来获取:
- import "github.com/astaxie/beego/context"
- func checkAccount(ctx *context.Context) bool {
- ck, err := ctx.Request.Cookie("uname")
- if err != nil {
- return false
- }
- uname := ck.Value
- ck, err = ctx.Request.Cookie("pwd")
- if err != nil {
- return false
- }
- pwd := ck.Value
- return beego.AppConfig.String("uname") == uname &&
- beego.AppConfig.String("pwd") == pwd
- }
- //调用方式
- func (c *HomeController) Get() {
- c.Data["IsLogin"] = checkAccount(c.Ctx)
- c.TplName = "home.html"
- }
因此在升级版本的过程中需要留意此处!