123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- package gn
- import (
- "eta_gn/eta_bridge/models/eta"
- "eta_gn/eta_bridge/models/response"
- "eta_gn/eta_bridge/services"
- "eta_gn/eta_bridge/services/gn"
- "fmt"
- "time"
- )
- // LoginEta
- // @Description: 获取eta的session
- // @author: Roc
- // @datetime 2024-01-23 17:44:15
- // @param code string
- // @return resp response.LoginResp
- // @return err error
- // @return errMsg string
- // func LoginEta(code string) (resp response.GnUserResp, err error, errMsg string) {
- func LoginEta(code string) (resp response.LoginResp, err error, errMsg string) {
- tokenResp, e := gn.GetToken(code)
- if e != nil {
- err = fmt.Errorf("获取AccessToken失败, %v", e)
- return
- }
- accessToken := tokenResp.AccessToken
- // 获取用户信息
- res, e := gn.GetUserInfo(code, accessToken)
- if e != nil {
- err = fmt.Errorf("获取用户基础信息失败, Err: %v, Code: %s, Token: %s", e, code, accessToken)
- return
- }
- //resp.Sub = res.Sub
- //resp.PreferredUsername = res.PreferredUsername
- //resp.Name = res.Name
- //resp.FamilyName = res.FamilyName
- //resp.GivenName = res.GivenName
- // 获取eta用户信息
- adminInfo, e := eta.GetSysUserByAdminName(res.PreferredUsername)
- if e != nil {
- err = fmt.Errorf("用户不存在, UserName: %s", res.PreferredUsername)
- return
- }
- // 生成登录session
- sessionResp, session, e, _ := services.CreateEtaSession(adminInfo)
- if e != nil {
- err = fmt.Errorf("登录失败, %v", e)
- return
- }
- resp = sessionResp
- // 记录两方session的绑定信息
- thirdSession := &eta.SysThirdSession{
- SysUserID: uint64(session.SysUserId),
- UserName: session.UserName,
- AccessToken: session.AccessToken,
- ThirdAccessToken: tokenResp.AccessToken,
- ThirdExpiredTime: time.Now().Add(time.Duration(tokenResp.ExpiresIn-100) * time.Second),
- CreatedTime: time.Now(),
- LastUpdatedTime: time.Now(),
- }
- err = eta.AddSysThirdSession(thirdSession)
- return
- }
- func GetUserInfoByToken(token string) (res *gn.UserBaseInfoResp, err error, errMsg string) {
- // 获取用户信息
- res, e := gn.GetUserInfoBySci(token)
- if e != nil {
- err = fmt.Errorf("获取用户基础信息失败, Err: %v, Token: %s", e, token)
- return
- }
- return
- }
|