login.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. package admin
  2. import (
  3. "cc-officialweb/models"
  4. "cc-officialweb/service"
  5. "github.com/beego/beego/v2/adapter/validation"
  6. beego "github.com/beego/beego/v2/server/web"
  7. )
  8. type LoginController struct {
  9. beego.Controller
  10. }
  11. func (l *LoginController) Get() {
  12. l.TplName = "admin/login.html"
  13. }
  14. func (l *LoginController) Post() {
  15. var user models.User
  16. // 获取POST参数
  17. username := l.GetString("username")
  18. password := l.GetString("password")
  19. // 进行验证和登录检查
  20. valid := validation.Validation{}
  21. valid.Required(username, "username").Message("用户名不能为空")
  22. valid.Required(password, "password").Message("密码不能为空")
  23. user.Username = username
  24. user.Password = password
  25. if valid.HasErrors() {
  26. for _, err := range valid.Errors {
  27. l.Data["error"] = err.Message
  28. break
  29. }
  30. } else {
  31. token := service.Login(user)
  32. if token != "" {
  33. l.Ctx.SetCookie("token", token, 3600*24*7, "/", "", false, true)
  34. l.Redirect("/admin/index", 302)
  35. } else {
  36. l.Data["error"] = "用户名或密码错误"
  37. }
  38. }
  39. l.TplName = "admin/login.html"
  40. }