fix: 统一业务响应状态码约定
This commit is contained in:
+1
-1
@@ -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
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user