Send a sessionToken back on /users/me.
This commit is contained in:
@@ -5,6 +5,8 @@
|
|||||||
// Tests that involve revocable sessions.
|
// Tests that involve revocable sessions.
|
||||||
// Tests that involve sending password reset emails.
|
// Tests that involve sending password reset emails.
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
|
||||||
var request = require('request');
|
var request = require('request');
|
||||||
var passwordCrypto = require('../src/password');
|
var passwordCrypto = require('../src/password');
|
||||||
|
|
||||||
@@ -95,6 +97,33 @@ describe('Parse.User testing', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('become', () => {
|
||||||
|
it('sends token back', done => {
|
||||||
|
let user = null;
|
||||||
|
var sessionToken = null;
|
||||||
|
|
||||||
|
Parse.User.signUp('Jason', 'Parse', { 'code': 'red' }).then(newUser => {
|
||||||
|
user = newUser;
|
||||||
|
expect(user.get('code'), 'red');
|
||||||
|
|
||||||
|
sessionToken = newUser.getSessionToken();
|
||||||
|
expect(sessionToken).toBeDefined();
|
||||||
|
|
||||||
|
return Parse.User.become(sessionToken);
|
||||||
|
}).then(newUser => {
|
||||||
|
expect(newUser.id).toEqual(user.id);
|
||||||
|
expect(newUser.get('username'), 'Jason');
|
||||||
|
expect(newUser.get('code'), 'red');
|
||||||
|
expect(newUser.getSessionToken()).toEqual(sessionToken);
|
||||||
|
}).then(() => {
|
||||||
|
done();
|
||||||
|
}, error => {
|
||||||
|
fail(error);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
it("become", (done) => {
|
it("become", (done) => {
|
||||||
var user = null;
|
var user = null;
|
||||||
var sessionToken = null;
|
var sessionToken = null;
|
||||||
|
|||||||
@@ -42,8 +42,9 @@ export class UsersRouter extends ClassesRouter {
|
|||||||
if (!req.info || !req.info.sessionToken) {
|
if (!req.info || !req.info.sessionToken) {
|
||||||
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN, 'invalid session token');
|
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN, 'invalid session token');
|
||||||
}
|
}
|
||||||
|
let sessionToken = req.info.sessionToken;
|
||||||
return rest.find(req.config, Auth.master(req.config), '_Session',
|
return rest.find(req.config, Auth.master(req.config), '_Session',
|
||||||
{ _session_token: req.info.sessionToken },
|
{ _session_token: sessionToken },
|
||||||
{ include: 'user' })
|
{ include: 'user' })
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
if (!response.results ||
|
if (!response.results ||
|
||||||
@@ -52,6 +53,8 @@ export class UsersRouter extends ClassesRouter {
|
|||||||
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN, 'invalid session token');
|
throw new Parse.Error(Parse.Error.INVALID_SESSION_TOKEN, 'invalid session token');
|
||||||
} else {
|
} else {
|
||||||
let user = response.results[0].user;
|
let user = response.results[0].user;
|
||||||
|
// Send token back on the login, because SDKs expect that.
|
||||||
|
user.sessionToken = sessionToken;
|
||||||
return { response: user };
|
return { response: user };
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user