From c609cce59f427a8502d40876084a3e0dd53f77e8 Mon Sep 17 00:00:00 2001 From: Murali Regandla Date: Sat, 14 Dec 2019 17:49:41 +0530 Subject: [PATCH] Setting installationId in _Session object during sign-up --- lib/src/base/parse_constants.dart | 1 + lib/src/objects/parse_user.dart | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/src/base/parse_constants.dart b/lib/src/base/parse_constants.dart index 8c13d3807..b003e9679 100644 --- a/lib/src/base/parse_constants.dart +++ b/lib/src/base/parse_constants.dart @@ -49,6 +49,7 @@ const String keyHeaderContentType = 'Content-Type'; const String keyHeaderContentTypeJson = 'application/json'; const String keyHeaderMasterKey = 'X-Parse-Master-Key'; const String keyHeaderClientKey = 'X-Parse-Client-Key'; +const String keyHeaderInstallationId = 'X-Parse-Installation-Id'; // URL params const String keyParamSessionToken = 'sessionToken'; diff --git a/lib/src/objects/parse_user.dart b/lib/src/objects/parse_user.dart index c9791e5a0..1db05a8f0 100644 --- a/lib/src/objects/parse_user.dart +++ b/lib/src/objects/parse_user.dart @@ -33,8 +33,7 @@ class ParseUser extends ParseObject implements ParseCloneable { @override dynamic clone(Map map) => - ParseUser.clone(map) - ..fromJson(map); + ParseUser.clone(map)..fromJson(map); static const String keyEmailVerified = 'emailVerified'; static const String keyUsername = 'username'; @@ -141,9 +140,11 @@ class ParseUser extends ParseObject implements ParseCloneable { final Uri url = getSanitisedUri(_client, '$path'); final String body = json.encode(bodyData); _saveChanges(); + final String installationId = await _getInstallationId(); final Response response = await _client.post(url, headers: { keyHeaderRevocableSession: '1', + if (installationId != null) keyHeaderInstallationId: installationId, }, body: body); @@ -185,10 +186,12 @@ class ParseUser extends ParseObject implements ParseCloneable { try { final Uri url = getSanitisedUri(_client, '$keyEndPointUsers'); final Uuid uuid = Uuid(); + final String installationId = await _getInstallationId(); final Response response = await _client.post(url, headers: { keyHeaderRevocableSession: '1', + if (installationId != null) keyHeaderInstallationId: installationId, }, body: jsonEncode({ 'authData': { @@ -215,9 +218,11 @@ class ParseUser extends ParseObject implements ParseCloneable { Future _loginWith(String provider, Object authData) async { try { final Uri url = getSanitisedUri(_client, '$keyEndPointUsers'); + final String installationId = await _getInstallationId(); final Response response = await _client.post(url, headers: { keyHeaderRevocableSession: '1', + if (installationId != null) keyHeaderInstallationId: installationId, }, body: jsonEncode({ 'authData': {provider: authData} @@ -396,4 +401,10 @@ class ParseUser extends ParseObject implements ParseCloneable { } static ParseUser _getEmptyUser() => ParseUser(null, null, null); + + static Future _getInstallationId() async { + final ParseInstallation parseInstallation = + await ParseInstallation.currentInstallation(); + return parseInstallation?.installationId; + } }