67 lines
1.3 KiB
Go
67 lines
1.3 KiB
Go
|
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{
|
||
|
Tel: jwt.Phone,
|
||
|
}
|
||
|
|
||
|
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()
|
||
|
}
|
||
|
}
|