| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package admin
- import (
- "cc-officialweb/models"
- "cc-officialweb/service"
- "encoding/json"
- "github.com/beego/beego/v2/adapter/validation"
- beego "github.com/beego/beego/v2/server/web"
- "github.com/go-playground/validator/v10"
- )
- type LoginController struct {
- beego.Controller
- }
- type JSON struct {
- Code int
- Msg string
- Data any
- }
- type JSONS struct {
- Total int
- Data any
- }
- func (l *LoginController) Get() {
- l.TplName = "admin/login.html"
- }
- func (l *LoginController) Post() {
- var user models.User
- // 获取POST参数
- username := l.GetString("username")
- password := l.GetString("password")
- // 进行验证和登录检查
- valid := validation.Validation{}
- valid.Required(username, "username").Message("用户名不能为空")
- valid.Required(password, "password").Message("密码不能为空")
- user.Username = username
- user.Password = password
- if valid.HasErrors() {
- for _, err := range valid.Errors {
- l.Data["error"] = err.Message
- break
- }
- } else {
- token := service.Login(user)
- if token != "" {
- l.Ctx.SetCookie("token", token, 3600*24*7, "/", "", false, true)
- l.Redirect("/admin/index", 302)
- } else {
- l.Data["error"] = "用户名或密码错误"
- }
- }
- l.TplName = "admin/login.html"
- }
- // Login 登录接口
- func (l *LoginController) Login() {
- var user models.User
- // 获取POST参数
- err := json.Unmarshal(l.Ctx.Input.RequestBody, &user)
- if err != nil {
- l.Data["json"] = &JSON{Code: 103, Msg: "json格式错误"}
- l.ServeJSON()
- return
- }
- // 进行验证和登录检查
- validate := validator.New()
- unva := validate.Var(user.Username, "required")
- pwdva := validate.Var(user.Password, "required")
- if unva != nil || pwdva != nil {
- l.Data["json"] = &JSON{Code: 103, Msg: "用户名密码不能为空"}
- l.ServeJSON()
- return
- } else {
- token := service.Login(user)
- if token != "" {
- l.Data["json"] = &JSON{Code: 200, Msg: "登录成功", Data: token}
- l.ServeJSON()
- } else {
- l.Data["json"] = &JSON{Code: 103, Msg: "用户名密码错误"}
- l.ServeJSON()
- return
- }
- }
- }
|