37 lines
897 B
Go
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
|
|
}
|