Skip to content

Commit f461f2a

Browse files
committed
Merge pull request #632 from ParsePlatform/nlutsenko.users.login
Send a sessionToken back on /users/me.
2 parents 5fae411 + bc90eff commit f461f2a

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

spec/ParseUser.spec.js

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
// Tests that involve revocable sessions.
66
// Tests that involve sending password reset emails.
77

8+
"use strict";
9+
810
var request = require('request');
911
var passwordCrypto = require('../src/password');
1012

@@ -95,6 +97,33 @@ describe('Parse.User testing', () => {
9597
});
9698
});
9799

100+
describe('become', () => {
101+
it('sends token back', done => {
102+
let user = null;
103+
var sessionToken = null;
104+
105+
Parse.User.signUp('Jason', 'Parse', { 'code': 'red' }).then(newUser => {
106+
user = newUser;
107+
expect(user.get('code'), 'red');
108+
109+
sessionToken = newUser.getSessionToken();
110+
expect(sessionToken).toBeDefined();
111+
112+
return Parse.User.become(sessionToken);
113+
}).then(newUser => {
114+
expect(newUser.id).toEqual(user.id);
115+
expect(newUser.get('username'), 'Jason');
116+
expect(newUser.get('code'), 'red');
117+
expect(newUser.getSessionToken()).toEqual(sessionToken);
118+
}).then(() => {
119+
done();
120+
}, error => {
121+
fail(error);
122+
done();
123+
});
124+
});
125+
});
126+
98127
it("become", (done) => {
99128
var user = null;
100129
var sessionToken = null;

src/Routers/UsersRouter.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,9 @@ export class UsersRouter extends ClassesRouter {
4242
if (!req.info || !req.info.sessionToken) {
4343
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN, 'invalid session token');
4444
}
45+
let sessionToken = req.info.sessionToken;
4546
return rest.find(req.config, Auth.master(req.config), '_Session',
46-
{ _session_token: req.info.sessionToken },
47+
{ _session_token: sessionToken },
4748
{ include: 'user' })
4849
.then((response) => {
4950
if (!response.results ||
@@ -52,6 +53,8 @@ export class UsersRouter extends ClassesRouter {
5253
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN, 'invalid session token');
5354
} else {
5455
let user = response.results[0].user;
56+
// Send token back on the login, because SDKs expect that.
57+
user.sessionToken = sessionToken;
5558
return { response: user };
5659
}
5760
});

0 commit comments

Comments
 (0)