func (self *SigninController) Post() { self.setTemplate() flash := beego.NewFlash() email := self.GetString("email") password := self.GetString("password") remember := self.GetString("remember") u := new(models.User) u.Email = email u.Password = password if err := u.Read("Email"); err != nil { flash.Error("该账号不存在~") flash.Store(&self.Controller) return } if utils.HmacSha256(password, u.Salt) != u.Password { flash.Error("密码无法通过校验~") flash.Store(&self.Controller) return } u.LastLoginTime = time.Now() u.LoginCount = u.LoginCount + 1 u.LastLoginIp = self.GetClientIP() u.Update("LastLoginTime", "LoginCount") // 登录成功设置session self.SetSession("userid", u.Id) self.SetSession("username", u.Username) self.SetSession("userrole", u.Role) self.SetSession("useremail", u.Email) self.SetSession("usercontent", u.Content) self.SetSession("useravatar", u.Avatar) // 设置cookie // 设置提示栏cookie标记 self.Ctx.SetCookie("signbar", SignBarClose, 31536000, "/") if remember == RememberOn { self.Ctx.SetCookie("remember", RememberOn, 31536000, "/") } else { self.Ctx.SetCookie("remember", RememberOff, 31536000, "/") } self.Redirect("/", 302) }