fix: 统一业务响应状态码约定

This commit is contained in:
2026-08-09 01:16:53 +08:00
parent 20e92dc82f
commit 66bc98ca8a
7 changed files with 106 additions and 92 deletions
+1 -1
View File
@@ -136,7 +136,7 @@ func BearerToken(header string) (string, error) {
func abortUnauthorized(c *gin.Context, message string) {
Logger.Warn("JWT认证失败", zap.String("message", message), zap.String("path", c.Request.URL.Path))
c.AbortWithStatusJSON(http.StatusUnauthorized, gin.H{"code": 401, "message": message, "data": nil})
c.AbortWithStatusJSON(http.StatusOK, gin.H{"code": 401, "message": message, "data": nil})
}
func GetCurrentUser(c *gin.Context) (int, string, bool) {
+22 -1
View File
@@ -1,6 +1,13 @@
package middlewares
import "testing"
import (
"net/http"
"net/http/httptest"
"testing"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
func TestGenerateTokenPair(t *testing.T) {
InitJWT("test-secret", 15, 24, "test-issuer")
@@ -24,6 +31,20 @@ func TestGenerateTokenPair(t *testing.T) {
}
}
func TestJWTAuthFailureUsesHTTP200(t *testing.T) {
Logger = zap.NewNop()
gin.SetMode(gin.TestMode)
router := gin.New()
router.GET("/private", JWTAuth(), func(c *gin.Context) {
c.Status(http.StatusNoContent)
})
recorder := httptest.NewRecorder()
router.ServeHTTP(recorder, httptest.NewRequest(http.MethodGet, "/private", nil))
if recorder.Code != http.StatusOK {
t.Fatalf("HTTP status = %d, want 200", recorder.Code)
}
}
func TestBearerToken(t *testing.T) {
if token, err := BearerToken("Bearer abc"); err != nil || token != "abc" {
t.Fatalf("BearerToken() = %q, %v", token, err)