|
package middlewares |
|
|
|
import ( |
|
"github.com/gin-gonic/gin" |
|
"os" |
|
"strings" |
|
) |
|
|
|
func Authorization(c *gin.Context) { |
|
customer_key := os.Getenv("Authorization") |
|
if customer_key != "" { |
|
authHeader := c.GetHeader("Authorization") |
|
if authHeader == "" { |
|
c.JSON(401, gin.H{"error": "Unauthorized"}) |
|
c.Abort() |
|
return |
|
} |
|
tokenParts := strings.Split(strings.Replace(authHeader, "Bearer ", "", 1)," ") |
|
customAccessToken := tokenParts[0] |
|
if customer_key != customAccessToken { |
|
c.JSON(401, gin.H{"error": "Unauthorized"}) |
|
c.Abort() |
|
return |
|
} |
|
if len(tokenParts) > 1 { |
|
openaiAccessToken := tokenParts[1] |
|
c.Request.Header.Set("Authorization", "Bearer " + openaiAccessToken) |
|
} |
|
} |
|
c.Next() |
|
} |
|
|