package backend import ( "context" "kpt-tmr-group/model" "kpt-tmr-group/pkg/jwt" "kpt-tmr-group/pkg/xerr" operationPb "kpt-tmr-group/proto/go/backend/operation" ) // Auth 用户登录 func (s *StoreEntry) Auth(ctx context.Context, auth *operationPb.UserAuth) (*operationPb.SystemToken, error) { systemUser := &model.SystemUser{} if err := s.DB.Where("name = ?", auth.UserName).Find(systemUser).Error; err != nil { return nil, xerr.WithStack(err) } if systemUser.Password != auth.Password { return nil, xerr.Customf("密码错误,来自用户:%s", auth.UserName) } token, err := jwt.GenerateToken(systemUser.Name, systemUser.Password) if err != nil { return nil, xerr.WithStack(err) } if token == "" { return nil, xerr.Custom("获取token错误") } return &operationPb.SystemToken{ Token: token, }, nil } // GetUserInfo 获取用户信息 func (s *StoreEntry) GetUserInfo(ctx context.Context, token string) (*operationPb.UserAuth, error) { systemUser := &model.SystemUser{} claims, err := jwt.ParseToken(token) if err != nil { return nil, xerr.WithStack(err) } if claims.Username == "" { return nil, xerr.Custom("token解析失败") } if err = s.DB.Where("name = ?", claims.Username).Find(systemUser).Error; err != nil { return nil, xerr.WithStack(err) } return systemUser.SystemUserFormat(), nil }