Skip to content

Commit 8d89838

Browse files
committed
Merge pull request #254 from ParsePlatform/fosco.logout
Removed extra /logout handler
2 parents 793085a + dee640c commit 8d89838

File tree

4 files changed

+31
-30
lines changed

4 files changed

+31
-30
lines changed

spec/ParseUser.spec.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1592,5 +1592,27 @@ describe('Parse.User testing', () => {
15921592
});
15931593
});
15941594

1595+
it('ensure logout works', (done) => {
1596+
var user = null;
1597+
var sessionToken = null;
1598+
1599+
Parse.Promise.as().then(function() {
1600+
return Parse.User.signUp('log', 'out');
1601+
}).then((newUser) => {
1602+
user = newUser;
1603+
sessionToken = user.getSessionToken();
1604+
return Parse.User.logOut();
1605+
}).then(() => {
1606+
user.set('foo', 'bar');
1607+
return user.save(null, { sessionToken: sessionToken });
1608+
}).then(() => {
1609+
fail('Save should have failed.');
1610+
done();
1611+
}, (e) => {
1612+
expect(e.code).toEqual(Parse.Error.SESSION_MISSING);
1613+
done();
1614+
});
1615+
})
1616+
15951617
});
15961618

src/RestWrite.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -637,7 +637,7 @@ RestWrite.prototype.runDatabaseOperation = function() {
637637
this.query &&
638638
!this.auth.couldUpdateUserId(this.query.objectId)) {
639639
throw new Parse.Error(Parse.Error.SESSION_MISSING,
640-
'cannot modify user ' + this.objectId);
640+
'cannot modify user ' + this.query.objectId);
641641
}
642642

643643
// TODO: Add better detection for ACL, ensuring a user can't be locked from

src/sessions.js

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -41,29 +41,6 @@ function handleGet(req) {
4141
});
4242
}
4343

44-
function handleLogout(req) {
45-
// TODO: Verify correct behavior for logout without token
46-
if (!req.info || !req.info.sessionToken) {
47-
throw new Parse.Error(Parse.Error.SESSION_MISSING,
48-
'Session token required for logout.');
49-
}
50-
return rest.find(req.config, Auth.master(req.config), '_Session',
51-
{ _session_token: req.info.sessionToken})
52-
.then((response) => {
53-
if (!response.results || response.results.length == 0) {
54-
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN,
55-
'Session token not found.');
56-
}
57-
return rest.del(req.config, Auth.master(req.config), '_Session',
58-
response.results[0].objectId);
59-
}).then(() => {
60-
return {
61-
status: 200,
62-
response: {}
63-
};
64-
});
65-
}
66-
6744
function handleFind(req) {
6845
var options = {};
6946
if (req.body.skip) {
@@ -111,12 +88,11 @@ function handleMe(req) {
11188
});
11289
}
11390

114-
router.route('POST', '/logout', handleLogout);
11591
router.route('POST','/sessions', handleCreate);
11692
router.route('GET','/sessions/me', handleMe);
11793
router.route('GET','/sessions/:objectId', handleGet);
11894
router.route('PUT','/sessions/:objectId', handleUpdate);
11995
router.route('GET','/sessions', handleFind);
12096
router.route('DELETE','/sessions/:objectId', handleDelete);
12197

122-
module.exports = router;
98+
module.exports = router;

src/users.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,14 +169,17 @@ function handleDelete(req) {
169169
function handleLogOut(req) {
170170
var success = {response: {}};
171171
if (req.info && req.info.sessionToken) {
172-
rest.find(req.config, Auth.master(req.config), '_Session',
172+
return rest.find(req.config, Auth.master(req.config), '_Session',
173173
{_session_token: req.info.sessionToken}
174174
).then((records) => {
175175
if (records.results && records.results.length) {
176-
rest.del(req.config, Auth.master(req.config), '_Session',
177-
records.results[0].id
178-
);
176+
return rest.del(req.config, Auth.master(req.config), '_Session',
177+
records.results[0].objectId
178+
).then(() => {
179+
return Promise.resolve(success);
180+
});
179181
}
182+
return Promise.resolve(success);
180183
});
181184
}
182185
return Promise.resolve(success);

0 commit comments

Comments
 (0)