logout static method
Implementation
static Future<bool> logout(OAuthProvider provider, String idTokenHint) async {
try {
final discoveryResponse =
await http.get(Uri.parse(provider.discoveryUrl));
if (discoveryResponse.statusCode != 200) {
throw Exception('Failed to fetch discovery document');
}
final discoveryData = json.decode(discoveryResponse.body);
final endSessionEndpoint = discoveryData['end_session_endpoint'];
if (endSessionEndpoint == null) {
throw Exception('End session endpoint not found in discovery document');
}
final logoutResponse = await http
.get(Uri.parse(endSessionEndpoint).replace(queryParameters: {
'id_token_hint': idTokenHint,
}));
log(logoutResponse.body);
return logoutResponse.statusCode == 200;
} catch (e) {
debugPrint('Logout error: $e');
return false;
}
}