in lib/src/client_credentials_grant.dart [42:79]
Future<Client> clientCredentialsGrant(
Uri authorizationEndpoint, String? identifier, String? secret,
{Iterable<String>? scopes,
bool basicAuth = true,
http.Client? httpClient,
String? delimiter,
Map<String, dynamic> Function(MediaType? contentType, String body)?
getParameters}) async {
delimiter ??= ' ';
var startTime = DateTime.now();
var body = {'grant_type': 'client_credentials'};
var headers = <String, String>{};
if (identifier != null) {
if (basicAuth) {
headers['Authorization'] = basicAuthHeader(identifier, secret!);
} else {
body['client_id'] = identifier;
if (secret != null) body['client_secret'] = secret;
}
}
if (scopes != null && scopes.isNotEmpty) {
body['scope'] = scopes.join(delimiter);
}
httpClient ??= http.Client();
var response = await httpClient.post(authorizationEndpoint,
headers: headers, body: body);
var credentials = handleAccessTokenResponse(response, authorizationEndpoint,
startTime, scopes?.toList() ?? [], delimiter,
getParameters: getParameters);
return Client(credentials,
identifier: identifier, secret: secret, httpClient: httpClient);
}