// 登录 // uri : /account/login func LoginHandler(rw http.ResponseWriter, req *http.Request) { username := req.FormValue("username") if username == "" || req.Method != "POST" { req.Form.Set(filter.CONTENT_TPL_KEY, "/template/login.html") return } // 处理用户登录 passwd := req.FormValue("passwd") userLogin, err := service.Login(username, passwd) if err != nil { req.Form.Set(filter.CONTENT_TPL_KEY, "/template/login.html") filter.SetData(req, map[string]interface{}{"username": username, "error": err.Error()}) return } logger.Debugf("remember_me is %q\n", req.FormValue("remember_me")) // 登录成功,种cookie setCookie(rw, req, userLogin.Username) // 支持跳转到源页面 uri := "/" values := filter.NewFlash(rw, req).Flashes("uri") if values != nil { uri = values[0].(string) } logger.Debugln("uri===", uri) util.Redirect(rw, req, uri) }
// 登录 // uri : /account/login{json:(|.json)} func LoginHandler(rw http.ResponseWriter, req *http.Request) { username := req.PostFormValue("username") if username == "" || req.Method != "POST" { filter.SetData(req, map[string]interface{}{"error": "非法请求"}) req.Form.Set(filter.CONTENT_TPL_KEY, "/template/login.html") return } vars := mux.Vars(req) suffix := vars["json"] // 处理用户登录 passwd := req.PostFormValue("passwd") userLogin, err := service.Login(username, passwd) if err != nil { if suffix != "" { logger.Errorln("login error:", err) fmt.Fprint(rw, `{"ok":0,"error":"`+err.Error()+`"}`) return } req.Form.Set(filter.CONTENT_TPL_KEY, "/template/login.html") filter.SetData(req, map[string]interface{}{"username": username, "error": err.Error()}) return } logger.Debugf("remember_me is %q\n", req.FormValue("remember_me")) // 登录成功,种cookie setCookie(rw, req, userLogin.Username) if suffix != "" { fmt.Fprint(rw, `{"ok":1,"msg":"success"}`) return } // 支持跳转到源页面 uri := "/" values := filter.NewFlash(rw, req).Flashes("uri") if values != nil { uri = values[0].(string) } logger.Debugln("uri===", uri) util.Redirect(rw, req, uri) }
// 修改密码 // uri: /account/changepwd.json func ChangePwdHandler(rw http.ResponseWriter, req *http.Request) { curUser, _ := filter.CurrentUser(req) username := curUser["username"].(string) curPasswd := req.PostFormValue("cur_passwd") _, err := service.Login(username, curPasswd) if err != nil { // 原密码错误 fmt.Fprint(rw, `{"ok": 0, "error": "原密码填写错误!"}`) return } // 更新密码 errMsg, err := service.UpdatePasswd(username, req.PostFormValue("passwd")) if err != nil { fmt.Fprint(rw, `{"ok": 0, "error":"`, errMsg, `"}`) return } fmt.Fprint(rw, `{"ok": 1, "msg":"密码修改成功!"}`) }