logout method
Logs the user out
Implementation
Future logout({bool destroySession = true, inputConf, inputTokens}) async {
if (destroySession) {
final conf = inputConf ?? getConfiguration();
if (conf == null) {
throw 'Could not read configuration from storage';
}
//final realm = conf['realm'];
//final authServerUrl = conf['auth-server-url'];
final savedTokens = inputTokens ?? getTokens();
if (savedTokens == null) {
throw 'Error during kc-logout, savedTokens is $savedTokens';
}
final logoutUrl = conf['end_session_endpoint']; //'${getRealmURL(realm, authServerUrl)}/protocol/openid-connect/logout';
final dio = Dio();
dio.options.headers[HttpHeaders.acceptHeader] = 'application/json';
dio.options.headers[HttpHeaders.contentTypeHeader] = 'application/x-www-form-urlencoded';
final response = await dio.get(logoutUrl);
if (response.statusCode == 200) {
await clearSession();
return;
}
throw 'Error during kc-logout: ${response.statusCode}: ${response.data}';
}
await clearSession();
return;
}