Skip to content

Commit 3f18bc7

Browse files
authored
Merge pull request #6 from phillwiggins/master
Merge from upstream.
2 parents 17972fc + 3ab44bc commit 3f18bc7

File tree

3 files changed

+31
-5
lines changed

3 files changed

+31
-5
lines changed

lib/src/base/parse_constants.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const String keyLibraryName = 'Flutter Parse SDK';
77
// End Points
88
const String keyEndPointUserName = '/users/me';
99
const String keyEndPointLogin = '/login';
10+
const String keyEndPointLogout = '/logout';
1011
const String keyEndPointUsers = '/users';
1112
const String keyEndPointVerificationEmail = '/verificationEmailRequest';
1213
const String keyEndPointRequestPasswordReset = '/requestPasswordReset';

lib/src/enums/parse_enum_api_rq.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ enum ParseApiRQ {
1212
currentUser,
1313
signUp,
1414
login,
15+
logout,
1516
loginAnonymous,
1617
verificationEmailRequest,
1718
requestPasswordReset,

lib/src/objects/parse_user.dart

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -200,11 +200,35 @@ class ParseUser extends ParseObject implements ParseCloneable {
200200
}
201201
}
202202

203-
/// Removes the current user from the session data
204-
logout() {
205-
_client.data.sessionId = null;
206-
unpin(key: keyParseStoreUser);
207-
setObjectData(null);
203+
/// Sends a request to delete the sessions token from the
204+
/// server. Will also delete the local user data unless
205+
/// deleteLocalUserData is false.
206+
logout({bool deleteLocalUserData = true}) async {
207+
if (deleteLocalUserData) {
208+
_client.data.sessionId = null;
209+
unpin(key: keyParseStoreUser);
210+
setObjectData(null);
211+
}
212+
213+
try {
214+
if (username == null) return null;
215+
216+
Uri tempUri = Uri.parse(_client.data.serverUrl);
217+
218+
Uri url = Uri(
219+
scheme: tempUri.scheme,
220+
host: tempUri.host,
221+
path: "${tempUri.path}$keyEndPointLogout");
222+
223+
final response = await _client.post(
224+
url,
225+
);
226+
227+
return _handleResponse(
228+
this, response, ParseApiRQ.logout, _debug, className);
229+
} on Exception catch (e) {
230+
return _handleException(e, ParseApiRQ.logout, _debug, className);
231+
}
208232
}
209233

210234
/// Sends a verification email to the users email address

0 commit comments

Comments
 (0)