123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- 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
- }
|