auth.go 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package gn
  2. import (
  3. "eta_gn/eta_bridge/models/eta"
  4. "eta_gn/eta_bridge/models/response"
  5. "eta_gn/eta_bridge/services"
  6. "eta_gn/eta_bridge/services/gn"
  7. "fmt"
  8. "time"
  9. )
  10. func LoginEta(code string) (resp response.LoginResp, err error, errMsg string) {
  11. tokenResp, e := gn.GetToken(code)
  12. if e != nil {
  13. err = fmt.Errorf("获取AccessToken失败, %v", e)
  14. return
  15. }
  16. accessToken := tokenResp.AccessToken
  17. res, e := gn.GetUserInfo(code, accessToken)
  18. if e != nil {
  19. err = fmt.Errorf("获取用户基础信息失败, Err: %v, Code: %s, Token: %s", e, code, accessToken)
  20. return
  21. }
  22. adminInfo, e := eta.GetSysUserByAdminName(res.PreferredUsername)
  23. if e != nil {
  24. err = fmt.Errorf("用户不存在, UserName: %s", res.PreferredUsername)
  25. return
  26. }
  27. sessionResp, session, e, _ := services.CreateEtaSession(adminInfo)
  28. if e != nil {
  29. err = fmt.Errorf("登录失败, %v", e)
  30. return
  31. }
  32. resp = sessionResp
  33. thirdSession := &eta.SysThirdSession{
  34. SysUserID: uint64(session.SysUserId),
  35. UserName: session.UserName,
  36. AccessToken: session.AccessToken,
  37. ThirdAccessToken: tokenResp.AccessToken,
  38. ThirdExpiredTime: time.Now().Add(time.Duration(tokenResp.ExpiresIn-100) * time.Second),
  39. CreatedTime: time.Now(),
  40. LastUpdatedTime: time.Now(),
  41. }
  42. err = eta.AddSysThirdSession(thirdSession)
  43. return
  44. }
  45. func GetUserInfoByToken(token string) (res *gn.UserBaseInfoResp, err error, errMsg string) {
  46. res, e := gn.GetUserInfoBySci(token)
  47. if e != nil {
  48. err = fmt.Errorf("获取用户基础信息失败, Err: %v, Token: %s", e, token)
  49. return
  50. }
  51. return
  52. }