File tree 2 files changed +24
-0
lines changed
2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change @@ -1564,6 +1564,26 @@ describe('Parse.User testing', () => {
1564
1564
expect ( u2 . getSessionToken ( ) ) . toBe ( model . getSessionToken ( ) ) ;
1565
1565
} ) ;
1566
1566
1567
+ it ( 'link with provider via sessionToken should not create new sessionToken (Regression #5799)' , async ( ) => {
1568
+ const provider = getMockFacebookProvider ( ) ;
1569
+ Parse . User . _registerAuthenticationProvider ( provider ) ;
1570
+ const user = new Parse . User ( ) ;
1571
+ user . set ( 'username' , 'testLinkWithProviderNoOverride' ) ;
1572
+ user . set ( 'password' , 'mypass' ) ;
1573
+ await user . signUp ( ) ;
1574
+ const sessionToken = user . getSessionToken ( ) ;
1575
+
1576
+ await user . _linkWith ( 'facebook' , { } , { sessionToken } ) ;
1577
+ expect ( sessionToken ) . toBe ( user . getSessionToken ( ) ) ;
1578
+
1579
+ expect ( user . _isLinked ( provider ) ) . toBe ( true ) ;
1580
+ await user . _unlinkFrom ( provider , { sessionToken } ) ;
1581
+ expect ( user . _isLinked ( provider ) ) . toBe ( false ) ;
1582
+
1583
+ const become = await Parse . User . become ( sessionToken ) ;
1584
+ expect ( sessionToken ) . toBe ( become . getSessionToken ( ) ) ;
1585
+ } ) ;
1586
+
1567
1587
it ( 'link with provider failed' , async done => {
1568
1588
const provider = getMockFacebookProvider ( ) ;
1569
1589
provider . shouldError = true ;
Original file line number Diff line number Diff line change @@ -806,6 +806,10 @@ RestWrite.prototype.createSessionTokenIfNeeded = function() {
806
806
if ( this . query && ! this . data . authData ) {
807
807
return ;
808
808
}
809
+ // Don't generate new sessionToken if linking via sessionToken
810
+ if ( this . auth . user && this . data . authData ) {
811
+ return ;
812
+ }
809
813
if (
810
814
! this . storage [ 'authProvider' ] && // signup call, with
811
815
this . config . preventLoginWithUnverifiedEmail && // no login without verification
You can’t perform that action at this time.
0 commit comments