logout method
Performs a logout in shadertoy website
Upon success error is null
In case of error the error field has the corresponding
ResponseError
structure
Implementation
@override
Future<LogoutResponse> logout() {
if (options.supportsCookies) {
return loggedIn.then((isLoggedIn) {
if (isLoggedIn) {
var clientOptions = Options(
headers: {HttpHeaders.refererHeader: context.baseUrl},
followRedirects: false,
validateStatus: (int? status) => status == 302);
return catchDioError<LogoutResponse>(
client
.get('/${ShadertoyContext.signOutPath}',
options: clientOptions)
.then((Response<dynamic> response) {
clearCookies();
return LogoutResponse();
}),
(de) => LogoutResponse(
error: toResponseError(de)
.copyWith(context: contextUser, target: options.user)));
}
return Future.value(LogoutResponse());
});
} else {
return Future.value(LogoutResponse());
}
}