37 lines
897 B
Go

package interceptor
import (
"net/http"
"bindbox-game/configs"
"bindbox-game/internal/code"
"bindbox-game/internal/pkg/core"
"bindbox-game/internal/pkg/jwtoken"
"bindbox-game/internal/proposal"
)
func (i *interceptor) AppTokenAuthVerify(ctx core.Context) (sessionUserInfo proposal.SessionUserInfo, err core.BusinessError) {
headerAuthorizationString := ctx.GetHeader("Authorization")
if headerAuthorizationString == "" {
err = core.Error(
http.StatusUnauthorized,
code.JWTAuthVerifyError,
"无法确认您的身份,请进行登录。",
)
return
}
jwtClaims, jwtErr := jwtoken.New(configs.Get().JWT.PatientSecret).Parse(headerAuthorizationString)
if jwtErr != nil {
err = core.Error(
http.StatusUnauthorized,
code.JWTAuthVerifyError,
"您的账号登录过期,请重新登录。",
)
return
}
sessionUserInfo = jwtClaims.SessionUserInfo
return
}