public static VtexCredentials ParseHeader(AuthenticationHeaderValue header)
{
if (header == null)
throw new ArgumentNullException(nameof(header), "Missing authorization header.");
if (header.Scheme.Equals(SupportedSchemes.Basic, StringComparison.OrdinalIgnoreCase))
{
var parts = Encoding.ASCII.GetString(Convert.FromBase64String(header.Parameter))
.Split(new[] {':'}, 2);
return new VtexCredentials(parts[0], parts[1]);
}
if (header.Scheme.Equals(SupportedSchemes.Token, StringComparison.OrdinalIgnoreCase))
return new VtexCredentials(header.Parameter);
throw new ArgumentException(UnsupportedSchemeMessage(header.Scheme), nameof(header));
}