Skip to content

Commit c9fc809

Browse files
flovilmartTylerBrock
authored andcommitted
Makes sure we don't strip authData or session token from users using masterKey (#2348)
* Makes sure we don't strip auth data or session token from users queried with masterKey (#2342)) * nit: test title
1 parent 88d913f commit c9fc809

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

spec/ParseUser.spec.js

+30
Original file line numberDiff line numberDiff line change
@@ -1029,6 +1029,36 @@ describe('Parse.User testing', () => {
10291029
});
10301030
});
10311031

1032+
it_exclude_dbs(['postgres'])("user authData should be available in cloudcode (#2342)", (done) => {
1033+
1034+
Parse.Cloud.define('checkLogin', (req, res) => {
1035+
expect(req.user).not.toBeUndefined();
1036+
expect(Parse.FacebookUtils.isLinked(req.user)).toBe(true);
1037+
res.success();
1038+
});
1039+
1040+
var provider = getMockFacebookProvider();
1041+
Parse.User._registerAuthenticationProvider(provider);
1042+
Parse.User._logInWith("facebook", {
1043+
success: function(model) {
1044+
ok(model instanceof Parse.User, "Model should be a Parse.User");
1045+
strictEqual(Parse.User.current(), model);
1046+
ok(model.extended(), "Should have used subclass.");
1047+
strictEqual(provider.authData.id, provider.synchronizedUserId);
1048+
strictEqual(provider.authData.access_token, provider.synchronizedAuthToken);
1049+
strictEqual(provider.authData.expiration_date, provider.synchronizedExpiration);
1050+
ok(model._isLinked("facebook"), "User should be linked to facebook");
1051+
1052+
Parse.Cloud.run('checkLogin').then(done, done);
1053+
},
1054+
error: function(model, error) {
1055+
console.error(model, error);
1056+
ok(false, "linking should have worked");
1057+
done();
1058+
}
1059+
});
1060+
});
1061+
10321062
it_exclude_dbs(['postgres'])("log in with provider and update token", (done) => {
10331063
var provider = getMockFacebookProvider();
10341064
var secondProvider = getMockFacebookProviderWithIdToken('8675309', 'jenny_valid_token');

src/RestQuery.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ function includePath(config, auth, response, path) {
504504
obj.__type = 'Object';
505505
obj.className = includeResponse.className;
506506

507-
if (obj.className == "_User") {
507+
if (obj.className == "_User" && !auth.isMaster) {
508508
delete obj.sessionToken;
509509
delete obj.authData;
510510
}

0 commit comments

Comments
 (0)