fonchain-fiee/pkg/middleware/check_login.go

68 lines
1.4 KiB
Go
Raw Normal View History

2025-02-20 11:43:50 +00:00
package middleware
import (
"errors"
"fmt"
api "fonchain-fiee/api/account"
jwt2 "fonchain-fiee/pkg/common/jwt"
"fonchain-fiee/pkg/common/m"
"fonchain-fiee/pkg/e"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
)
// CheckLogin 检测登陆
func CheckLogin(provider *api.AccountClientImpl) gin.HandlerFunc {
return func(ctx *gin.Context) {
//如果没有登录
authorization := ctx.GetHeader(e.BoxAuthorization)
if authorization == "" {
service.Error(ctx, errors.New(e.ErrNotLogin))
return
}
jwt, err := jwt2.ParseToken(authorization, m.JWTSecret)
fmt.Println(jwt)
if err != nil {
service.Error(ctx, errors.New(e.ErrNotLogin))
return
}
//1 获取用户的账号信息
infoReq := &api.UserByTelRequest{
2025-02-21 05:27:45 +00:00
Tel: jwt.Phone,
Domain: jwt.Domain,
2025-02-20 11:43:50 +00:00
}
infoRes, err := service.AccountProvider.UserByTel(ctx, infoReq)
if err != nil {
service.Error(ctx, err)
return
}
if infoRes.IsExist == false {
service.Error(ctx, errors.New(e.ErrNotLogin))
return
}
info := infoRes.Info
loginInfo := login.Info{
Domain: info.Domain,
ID: info.ID,
Account: info.Account,
NickName: info.NickName,
TelNum: infoRes.Info.TelNum,
Avatar: infoRes.Info.Avatar,
RealName: infoRes.Info.RealName,
IDNum: infoRes.Info.IDNum,
}
ctx.Set("jwtInfo", loginInfo)
ctx.Next()
}
}