revokeGrant method
Future<void>
revokeGrant(
- ConnectanumHttpAuthGrant grant, {
- ConnectanumHttpAuthTokenKind tokenKind = ConnectanumHttpAuthTokenKind.refreshToken,
- Map<
String, String> headers = const <String, String>{},
Revokes one credential from grant at its exact issuing endpoint.
Use revokeToken only when deliberately working with an unbound raw credential.
Implementation
Future<void> revokeGrant(
ConnectanumHttpAuthGrant grant, {
ConnectanumHttpAuthTokenKind tokenKind =
ConnectanumHttpAuthTokenKind.refreshToken,
Map<String, String> headers = const <String, String>{},
}) {
return _runTrackedOperation((openRequest) async {
_validateGrantEndpoint(grant);
final tokenType = _nonEmptyArgument(grant.tokenType, 'grant.tokenType');
if (tokenType.toLowerCase() != 'bearer') {
throw ArgumentError(
'grant.tokenType must use the Bearer authentication scheme.',
);
}
final token = switch (tokenKind) {
ConnectanumHttpAuthTokenKind.accessToken => grant.accessToken,
ConnectanumHttpAuthTokenKind.refreshToken => grant.refreshToken,
};
if (token == null) {
throw ArgumentError(
'grant does not contain the selected revocation credential.',
);
}
final revokeToken = _nonEmptyToken(token, 'grant token');
await _requestRevokeToken(
revokeToken,
tokenTypeHint: tokenKind.hint,
headers: headers,
openRequest: openRequest,
);
});
}