func keyFunc()

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
}