@@ -30,6 +30,11 @@ class ParseUser extends ParseObject implements ParseCloneable {
3030 set emailAddress (String emailAddress) =>
3131 set <String >(keyVarEmail, emailAddress);
3232
33+ String get sessionToken => super .get <String >(keyVarSessionToken);
34+
35+ set sessionToken (String sessionToken) =>
36+ set <String >(keyVarSessionToken, sessionToken);
37+
3338 /// Creates an instance of ParseUser
3439 ///
3540 /// Users can set whether debug should be set on this class with a [bool] ,
@@ -41,7 +46,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
4146 /// is required as well to create a full new user object on ParseServer. Only
4247 /// username and password is required to login
4348 ParseUser (String username, String password, String emailAddress,
44- {bool debug, ParseHTTPClient client})
49+ {String sessionToken, bool debug, ParseHTTPClient client})
4550 : super (keyClassUser) {
4651 _debug = isDebugEnabled (objectLevelDebug: debug);
4752 _client = client ??
@@ -52,6 +57,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
5257 this .username = username;
5358 this .password = password;
5459 this .emailAddress = emailAddress;
60+ this .sessionToken = sessionToken;
5561 }
5662
5763 ParseUser .forQuery () : super (keyClassUser);
@@ -105,7 +111,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
105111 /// Current user is stored locally, but in case of a server update [bool]
106112 /// fromServer can be called and an updated version of the [User] object will be
107113 /// returned
108- static currentUser () {
114+ static Future < ParseUser > currentUser () {
109115 return _getUserFromLocalStore ();
110116 }
111117
@@ -207,6 +213,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
207213 final String sessionId = _client.data.sessionId;
208214
209215 _client.data.sessionId = null ;
216+ ParseCoreData ().setSessionId (null );
210217
211218 if (deleteLocalUserData == true ) {
212219 unpin (key: keyParseStoreUser);
@@ -366,7 +373,8 @@ class ParseUser extends ParseObject implements ParseCloneable {
366373 Map <String , dynamic > responseData = JsonDecoder ().convert (response.body);
367374 if (responseData.containsKey (keyVarObjectId)) {
368375 parseResponse.result.fromJson (responseData);
369- ParseCoreData ().setSessionId (responseData[keyParamSessionToken]);
376+ user.sessionToken = responseData[keyParamSessionToken];
377+ ParseCoreData ().setSessionId (user.sessionToken);
370378 }
371379
372380 if (type == ParseApiRQ .getAll || type == ParseApiRQ .destroy) {
0 commit comments