Bläddra i källkod

feat(auth): support bearer token pass via query parameter

bob.yuxinyang 1 månad sedan
förälder
incheckning
23e5fd3125
1 ändrade filer med 7 tillägg och 3 borttagningar
  1. 7 3
      middleware/auth.go

+ 7 - 3
middleware/auth.go

@@ -14,9 +14,13 @@ func Auth(cfg *config.Config) gin.HandlerFunc {
 	return func(c *gin.Context) {
 		authHeader := c.GetHeader("Authorization")
 		if authHeader == "" {
-			c.JSON(http.StatusUnauthorized, gin.H{"code": 401, "message": "missing authorization header"})
-			c.Abort()
-			return
+			if queryToken := c.Query("token"); queryToken != "" {
+				authHeader = "Bearer " + queryToken
+			} else {
+				c.JSON(http.StatusUnauthorized, gin.H{"code": 401, "message": "missing authorization header"})
+				c.Abort()
+				return
+			}
 		}
 
 		parts := strings.Split(authHeader, " ")