Returns a AuthBasicCredentials containing the username and password
base64 encoded in authorizationHeader. For example, if the input to this method
was 'Basic base64String' it would decode the base64String
and return the username and password by splitting that decoded string around the character ':'.
If authorizationHeader is malformed or null, throws an AuthorizationParserException.
Source
static AuthBasicCredentials parse(String authorizationHeader) {
if (authorizationHeader == null) {
throw new AuthorizationParserException(
AuthorizationParserExceptionReason.missing);
}
var matcher = new RegExp("Basic (.+)");
var match = matcher.firstMatch(authorizationHeader);
if (match == null) {
throw new AuthorizationParserException(
AuthorizationParserExceptionReason.malformed);
}
var base64String = match[1];
var decodedCredentials;
try {
decodedCredentials =
new String.fromCharCodes(new Base64Decoder().convert(base64String));
} catch (e) {
throw new AuthorizationParserException(
AuthorizationParserExceptionReason.malformed);
}
var splitCredentials = decodedCredentials.split(":");
if (splitCredentials.length != 2) {
throw new AuthorizationParserException(
AuthorizationParserExceptionReason.malformed);
}
return new AuthBasicCredentials()
..username = splitCredentials.first
..password = splitCredentials.last;
}