in service/middleware/middleware.go [107:131]
func keyFunc(token *jwt.Token) (interface{}, error) {
region := "eu-west-1"
kid := fmt.Sprintf("%v", token.Header["kid"])
resp, err := http.Get(fmt.Sprintf("https://public-keys.auth.elb.%s.amazonaws.com/%s", region, kid))
if err != nil {
log.Printf("request for public key failed: %v", err)
return nil, err
}
defer resp.Body.Close()
pem, err := io.ReadAll(resp.Body)
if err != nil {
log.Printf("unable to read public key: %v", err)
return nil, err
}
publicKey, err := jwt.ParseECPublicKeyFromPEM(pem)
if err != nil {
log.Printf("unable to parse pem into public key: %v", err)
return nil, err
}
return publicKey, nil
}