diff --git a/api/mw/token.go b/api/mw/token.go index bc4e090..7ca6571 100644 --- a/api/mw/token.go +++ b/api/mw/token.go @@ -90,10 +90,13 @@ func CreateToken(tokenType int64) (string, error) { // CheckToken 会检查 token 是否有效,如果有效则返回 token 类型,否则返回错误(type 会返回 -1) func CheckToken(token string) (int64, error) { + if token == "" { + return -1, errno.AuthMissing + } // 解析 token,但不进行签名验证 tokenStruct, _, err := new(jwt.Parser).ParseUnverified(token, &Claims{}) if err != nil { - return -1, err + return -1, errno.AuthInvalid.WithError(err) } unverifiedClaims, ok := tokenStruct.Claims.(*Claims) diff --git a/pkg/errno/code.go b/pkg/errno/code.go index b7daaa9..e5529ca 100644 --- a/pkg/errno/code.go +++ b/pkg/errno/code.go @@ -47,7 +47,6 @@ const ( AuthInvalidCode = 30002 // 鉴权无效 AuthAccessExpiredCode = 30003 // 访问令牌过期 AuthRefreshExpiredCode = 30004 // 刷新令牌过期 - AuthMissingCode = 30005 // 鉴权缺失 BizErrorCode = 40001 // 业务错误 BizLogicCode = 40002 // 业务逻辑错误 diff --git a/pkg/errno/default.go b/pkg/errno/default.go index b3f0c88..82dde0c 100644 --- a/pkg/errno/default.go +++ b/pkg/errno/default.go @@ -24,11 +24,11 @@ var ( Success = NewErrNo(SuccessCode, "ok") CustomLaunchScreenSuccess = NewErrNo(consts.StatusOK, "ok") // 兼容处理 - AuthError = NewErrNo(AuthErrorCode, "鉴权失败") // 鉴权失败,通常是内部错误,如解析失败 - AuthInvalid = NewErrNo(AuthInvalidCode, "鉴权无效") // 鉴权无效,如令牌颁发者不是 west2-online + AuthError = NewErrNo(AuthErrorCode, "鉴权失败") // 鉴权失败,通常是内部错误,如解析失败 + AuthInvalid = NewErrNo(AuthInvalidCode, "鉴权无效") // 鉴权无效,如令牌颁发者不是 west2-online AuthAccessExpired = NewErrNo(AuthAccessExpiredCode, "访问令牌过期") // 访问令牌过期 AuthRefreshExpired = NewErrNo(AuthRefreshExpiredCode, "刷新令牌过期") // 刷新令牌过期 - AuthMissing = NewErrNo(AuthMissingCode, "鉴权缺失") // 鉴权缺失,如访问令牌缺失 + AuthMissing = NewErrNo(AuthInvalidCode, "缺失合法鉴权数据") // 鉴权缺失,如访问令牌缺失 ParamError = NewErrNo(ParamErrorCode, "参数错误") // 参数校验失败,可能是参数为空、参数类型错误等 ParamMissingHeader = NewErrNo(ParamMissingHeaderCode, "缺失合法学生请求头数据")