package util

import (
	"strings"

	"github.com/pingcap/errors"
)

// ExtractBearerToken extracts the bearer token from the Authorization header string.
func ExtractBearerToken(authHeader string) (string, error) {
	authHeaderParts := strings.Split(authHeader, " ")
	if len(authHeaderParts) != 2 || strings.ToLower(authHeaderParts[0]) != "bearer" {
		return "", errors.New("Authorization header format must be Bearer {token}")
	}

	return authHeaderParts[1], nil
}
