Skip to content

Commit 0ff8e56

Browse files
committed
Get the API key from the body of the request
1 parent 255e02b commit 0ff8e56

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

api/pkg/middlewares/api_key_auth_middleware.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ func APIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepository
2020
ctxLogger := tracer.CtxLogger(logger, span)
2121

2222
apiKey := c.Get(authHeaderAPIKey)
23+
if len(apiKey) == 0 {
24+
apiKey = getAPIKeyFromPayload(c)
25+
}
26+
2327
if len(apiKey) == 0 || apiKey == "undefined" {
2428
span.AddEvent(fmt.Sprintf("the request header has no [%s] header", authHeaderAPIKey))
2529
return c.Next()
@@ -35,3 +39,19 @@ func APIKeyAuth(logger telemetry.Logger, tracer telemetry.Tracer, userRepository
3539
return c.Next()
3640
}
3741
}
42+
43+
func getAPIKeyFromPayload(c *fiber.Ctx) string {
44+
payload := struct {
45+
APIKey string `json:"x-api-key" form:"x-api-key" query:"x-api-key"`
46+
}{}
47+
48+
if err := c.BodyParser(&payload); err != nil || payload.APIKey == "" {
49+
return ""
50+
}
51+
52+
if err := c.QueryParser(&payload); err != nil {
53+
return ""
54+
}
55+
56+
return payload.APIKey
57+
}

0 commit comments

Comments
 (0)