func (c *LoginController) Post() { account := c.Input().Get("account") password := c.Input().Get("password") autologin := c.Input().Get("autologin") == "on" //数据库比较 pass, err := models.VerifyUser(common.MakeMD5(account), common.MakeMD5(password)) if err != nil { c.Redirect("/login", 301) beego.Error(err) return } if pass { beego.Error("login successful!") maxage := 0 if autologin { maxage = 1<<31 - 1 } c.Ctx.SetCookie("account", common.MakeMD5(account), maxage, "/") c.Ctx.SetCookie("password", common.MakeMD5(password), maxage, "/") c.SetSession("account", common.MakeMD5(account)) // c.SetSession("password", password) } else { c.Redirect("/login", 301) beego.Error("login failed!") return } c.Redirect("/", 301) return }
func (c *TopicController) Post() { session_account := fmt.Sprintf("%v", c.GetSession("account")) session_password := fmt.Sprintf("%v", c.GetSession("password")) pass, err := models.VerifyUser(session_account, session_password) if err != nil { beego.Error(err) return } if pass { c.Redirect("/login", 302) return } //account := c.Input().Get("account") title := c.Input().Get("title") content := c.Input().Get("content") tid := c.Input().Get("tid") op_type := c.Input().Get("type") switch op_type { case "1": //添加文章 err := models.AddTopic(session_account, title, content) if err != nil { beego.Error(err) } c.Redirect("/topic", 301) break case "2": //修改文章 err := models.ModifyTopic(session_account, tid, title, content) if err != nil { beego.Error(err) } c.Redirect(fmt.Sprintf("/topic/view/%s", tid), 301) break case "3": name, _ := models.GetUserName(session_account) err := models.AddTopicReply(tid, -1, session_account, name, content) if err != nil { beego.Error(err) } c.Redirect(fmt.Sprintf("/topic/view/%s", tid), 301) break } }
func checkAccount(ctx *context.Context) bool { ck, err := ctx.Request.Cookie("account") if err != nil { beego.Error(err) return false } account := ck.Value ck, err = ctx.Request.Cookie("password") if err != nil { beego.Error(err) return false } password := ck.Value pass, err := models.VerifyUser(account, password) if err != nil { return false } return pass }