user.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "github.com/astaxie/beego/logs"
  5. "github.com/astaxie/beego/orm"
  6. "server/models"
  7. "server/utils"
  8. )
  9. type UserController struct {
  10. BaseController
  11. }
  12. // Login 登录
  13. func (c *UserController) Login() {
  14. var user models.User
  15. err := json.Unmarshal(c.Ctx.Input.RequestBody, &user)
  16. if err != nil {
  17. logs.Error(err, string(c.Ctx.Input.RequestBody))
  18. c.ErrorJson(err)
  19. return
  20. }
  21. cipherPassword := user.Password
  22. o := orm.NewOrm()
  23. err = o.Read(&user, "Account")
  24. if err != nil {
  25. c.ErrorJson(err)
  26. return
  27. }
  28. encryptPassword := utils.GetSHA256HashCode(cipherPassword)
  29. if encryptPassword != user.Password {
  30. c.setCode(-1).setMsg("用户名或者密码不正确!").json()
  31. return
  32. }
  33. user.Password = ""
  34. c.SetSession("user", user)
  35. c.setData(user).json()
  36. }
  37. // Register 用户注册
  38. func (c *UserController) Register() {
  39. var user models.User
  40. err := json.Unmarshal(c.Ctx.Input.RequestBody, &user)
  41. if err != nil {
  42. logs.Error(err, string(c.Ctx.Input.RequestBody))
  43. c.ErrorJson(err)
  44. return
  45. }
  46. if len(user.Account) == 0 || len(user.Password) == 0 {
  47. c.setCode(-1).setMsg("账号或者密码不能为空!")
  48. c.json()
  49. return
  50. }
  51. if len(user.Nickname) == 0 {
  52. user.Nickname = user.Account
  53. }
  54. user.Password = utils.GetSHA256HashCode(user.Password)
  55. o := orm.NewOrm()
  56. _, err = o.Insert(&user)
  57. if err != nil {
  58. c.ErrorJson(err)
  59. return
  60. }
  61. c.setMsg("注册成功!").json()
  62. }