logout method

Future<ParseResponse> logout({
  1. bool deleteLocalUserData = true,
})

Sends a request to delete the sessions token from the server. Will also delete the local user data unless deleteLocalUserData is false.

Implementation

Future<ParseResponse> logout({bool deleteLocalUserData = true}) async {
  final String? sessionId = ParseCoreData().sessionId;

  if (sessionId == null) {
    return await _handleResponse(
      this,
      ParseNetworkResponse(data: "{}", statusCode: 200),
      ParseApiRQ.logout,
      _debug,
      parseClassName,
    );
  }

  forgetLocalSession();

  if (deleteLocalUserData == true) {
    await this.deleteLocalUserData();
  }

  try {
    final Uri url = getSanitisedUri(_client, keyEndPointLogout);
    final ParseNetworkResponse response = await _client.post(
      url.toString(),
      options: ParseNetworkOptions(
        headers: <String, String>{keyHeaderSessionToken: sessionId},
      ),
    );

    return await _handleResponse(
      this,
      response,
      ParseApiRQ.logout,
      _debug,
      parseClassName,
    );
  } on Exception catch (e) {
    return handleException(e, ParseApiRQ.logout, _debug, parseClassName);
  }
}