From f7e57bdde166cc4abfe609bafaeedcebcc73c85f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=98=BE=E4=B9=90?= <2582217183@qq.com> Date: Thu, 19 Jun 2025 14:30:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(jwt):=20=E5=85=BC=E5=AE=B9Bearer=E7=9A=84to?= =?UTF-8?q?ken=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- context/httpJwt.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/context/httpJwt.go b/context/httpJwt.go index bd578da..3a6956f 100644 --- a/context/httpJwt.go +++ b/context/httpJwt.go @@ -3,6 +3,7 @@ package context import ( "fmt" "net/http" + "strings" "github.com/farseer-go/fs/configure" "github.com/farseer-go/fs/exception" @@ -84,9 +85,17 @@ func (receiver *HttpJwt) GetToken() string { if receiver.r.Header.Get("Upgrade") == "websocket" { return receiver.r.Form.Get(headerName) } + // 优先通过header读取 if token := receiver.r.Header.Get(headerName); token != "" { - return token + // 检查是否以 Bearer 开头(忽略大小写) + if strings.HasPrefix(strings.ToLower(token), "bearer ") { + // 分割后取 token 部分 + return strings.TrimSpace(token[7:]) + } + + // 否则直接使用整个 header 作为 token + return strings.TrimSpace(token) } // 走URL读取