Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/src/base/parse_constants.dart
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ const String keyVarUpdatedAt = 'updatedAt';
const String keyVarUsername = 'username';
const String keyVarEmail = 'email';
const String keyVarPassword = 'password';
const String keyVarSessionToken = 'sessionToken';
const String keyVarAcl = 'ACL';

// Classes
Expand Down
14 changes: 11 additions & 3 deletions lib/src/objects/parse_user.dart
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ class ParseUser extends ParseObject implements ParseCloneable {
set emailAddress(String emailAddress) =>
set<String>(keyVarEmail, emailAddress);

String get sessionToken => super.get<String>(keyVarSessionToken);

set sessionToken(String sessionToken) =>
set<String>(keyVarSessionToken, sessionToken);

/// Creates an instance of ParseUser
///
/// Users can set whether debug should be set on this class with a [bool],
Expand All @@ -41,7 +46,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
/// is required as well to create a full new user object on ParseServer. Only
/// username and password is required to login
ParseUser(String username, String password, String emailAddress,
{bool debug, ParseHTTPClient client})
{String sessionToken, bool debug, ParseHTTPClient client})
: super(keyClassUser) {
_debug = isDebugEnabled(objectLevelDebug: debug);
_client = client ??
Expand All @@ -52,6 +57,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
this.username = username;
this.password = password;
this.emailAddress = emailAddress;
this.sessionToken = sessionToken;
}

ParseUser.forQuery() : super(keyClassUser);
Expand Down Expand Up @@ -105,7 +111,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
/// Current user is stored locally, but in case of a server update [bool]
/// fromServer can be called and an updated version of the [User] object will be
/// returned
static currentUser() {
static Future<ParseUser> currentUser() {
return _getUserFromLocalStore();
}

Expand Down Expand Up @@ -207,6 +213,7 @@ class ParseUser extends ParseObject implements ParseCloneable {
final String sessionId = _client.data.sessionId;

_client.data.sessionId = null;
ParseCoreData().setSessionId(null);

if (deleteLocalUserData == true) {
unpin(key: keyParseStoreUser);
Expand Down Expand Up @@ -366,7 +373,8 @@ class ParseUser extends ParseObject implements ParseCloneable {
Map<String, dynamic> responseData = JsonDecoder().convert(response.body);
if (responseData.containsKey(keyVarObjectId)) {
parseResponse.result.fromJson(responseData);
ParseCoreData().setSessionId(responseData[keyParamSessionToken]);
user.sessionToken = responseData[keyParamSessionToken];
ParseCoreData().setSessionId(user.sessionToken);
}

if (type == ParseApiRQ.getAll || type == ParseApiRQ.destroy) {
Expand Down