MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / ClearToken

Method ClearToken

utils/jwt/jwt.go:189–216  ·  view source on GitHub ↗

ClearToken 清空token

(ctx *gin.Context)

Source from the content-addressed store, hash-verified

187
188// ClearToken 清空token
189func (h *handler) ClearToken(ctx *gin.Context) error {
190 // 获取 Authorization 头部中的 token
191 authToken, err := h.extractBearerToken(ctx)
192 if err != nil {
193 return err
194 }
195
196 // 提取 token 的 claims 信息
197 claims := &UserClaims{}
198 token, err := jwt.ParseWithClaims(authToken, claims, func(token *jwt.Token) (interface{}, error) {
199 return h.key1, nil
200 })
201
202 if err != nil || !token.Valid {
203 return errors.New("invalid authorization token")
204 }
205
206 // 将 token 加入 Redis 黑名单
207 if err := h.addToBlacklist(ctx, authToken, claims.ExpiresAt.Time); err != nil {
208 return err
209 }
210
211 if err := h.invalidateSession(ctx, claims.Ssid); err != nil {
212 return err
213 }
214
215 return nil
216}
217
218// extractBearerToken 提取 Bearer Token
219func (h *handler) extractBearerToken(ctx *gin.Context) (string, error) {

Callers

nothing calls this directly

Calls 3

extractBearerTokenMethod · 0.95
addToBlacklistMethod · 0.95
invalidateSessionMethod · 0.95

Tested by

no test coverage detected