Skip to content

Commit

Permalink
Prevent linkWith sessionToken from generating new session (#5801)
Browse files Browse the repository at this point in the history
  • Loading branch information
dplewis authored Jul 11, 2019
1 parent 26943de commit bb06376
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 0 deletions.
20 changes: 20 additions & 0 deletions spec/ParseUser.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -1564,6 +1564,26 @@ describe('Parse.User testing', () => {
expect(u2.getSessionToken()).toBe(model.getSessionToken());
});

it('link with provider via sessionToken should not create new sessionToken (Regression #5799)', async () => {
const provider = getMockFacebookProvider();
Parse.User._registerAuthenticationProvider(provider);
const user = new Parse.User();
user.set('username', 'testLinkWithProviderNoOverride');
user.set('password', 'mypass');
await user.signUp();
const sessionToken = user.getSessionToken();

await user._linkWith('facebook', {}, { sessionToken });
expect(sessionToken).toBe(user.getSessionToken());

expect(user._isLinked(provider)).toBe(true);
await user._unlinkFrom(provider, { sessionToken });
expect(user._isLinked(provider)).toBe(false);

const become = await Parse.User.become(sessionToken);
expect(sessionToken).toBe(become.getSessionToken());
});

it('link with provider failed', async done => {
const provider = getMockFacebookProvider();
provider.shouldError = true;
Expand Down
4 changes: 4 additions & 0 deletions src/RestWrite.js
Original file line number Diff line number Diff line change
Expand Up @@ -806,6 +806,10 @@ RestWrite.prototype.createSessionTokenIfNeeded = function() {
if (this.query && !this.data.authData) {
return;
}
// Don't generate new sessionToken if linking via sessionToken
if (this.auth.user && this.data.authData) {
return;
}
if (
!this.storage['authProvider'] && // signup call, with
this.config.preventLoginWithUnverifiedEmail && // no login without verification
Expand Down

0 comments on commit bb06376

Please sign in to comment.