login.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "eta/eta_forum_admin/models"
  5. "eta/eta_forum_admin/models/system"
  6. "eta/eta_forum_admin/services"
  7. "eta/eta_forum_admin/utils"
  8. "fmt"
  9. "github.com/beego/beego/v2/server/web"
  10. )
  11. type LoginController struct {
  12. web.Controller
  13. }
  14. // AuthCodeLogin
  15. // @Title 编码登录
  16. // @Description 编码登录
  17. // @Success 200 Ret=200 操作成功
  18. // @router /auth_code_login [post]
  19. func (this *LoginController) AuthCodeLogin() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. if br.ErrMsg == "" {
  23. br.IsSendEmail = false
  24. }
  25. this.Data["json"] = br
  26. this.ServeJSON()
  27. }()
  28. var req system.AuthCodeLoginReq
  29. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  30. if err != nil {
  31. br.Msg = "参数解析异常!"
  32. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  33. return
  34. }
  35. key := fmt.Sprint(utils.CACHE_FORUM_AUTH_CODE_PREFIX, req.AuthCode)
  36. adminNameRet := utils.Rc.Get(key)
  37. if adminNameRet == nil {
  38. br.Msg = "获取失败, 无效编码"
  39. return
  40. }
  41. // 清除AuthCode
  42. defer func() {
  43. //_ = utils.Rc.Delete(key)
  44. }()
  45. adminName := fmt.Sprintf("%s", adminNameRet)
  46. data, e := services.ThirdLogin(adminName)
  47. if e != nil {
  48. br.Msg = "获取失败"
  49. br.ErrMsg = "获取登录Token失败, Err: " + e.Error()
  50. return
  51. }
  52. br.Data = data
  53. br.Ret = 200
  54. br.Success = true
  55. br.Msg = "获取成功"
  56. }