package authser import "github.com/gin-gonic/gin" // TokenExpiredCode 上游约定:token 失效。 const TokenExpiredCode = 1000 // IsSessionExpiredCode 是否为会话失效类业务码。 func IsSessionExpiredCode(code int) bool { switch code { case TokenExpiredCode, 1002, 1012, 6001: // InvalidToken / NoToken / InvalidateToken / 用户不存在 return true default: return false } } // RecoverContentSession 会话失效后清理旧 cookie 并重新建立游客会话,调用方随后重试一次原请求。 func RecoverContentSession(c *gin.Context, code int) bool { if c == nil || !IsSessionExpiredCode(code) { return false } ClearAuthCookies(c) for _, name := range authCookieNames() { dropRequestCookie(c, name) } return EnsureGuestOnEnter(c) != nil }