Skip to content

Commit d9ded2a

Browse files
committed
pass authData to challenge method
1 parent 9f3062a commit d9ded2a

File tree

3 files changed

+22
-17
lines changed

3 files changed

+22
-17
lines changed

spec/AuthenticationAdapters.spec.js

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2204,10 +2204,11 @@ describe('Auth Adapter features', () => {
22042204
expect(challengeAdapter.challenge).toHaveBeenCalledTimes(1);
22052205
expect(challengeCall[0]).toEqual({ someData: true });
22062206
expect(challengeCall[1]).toBeUndefined();
2207-
expect(challengeCall[2].config).toBeDefined();
2208-
expect(challengeCall[2].auth).toBeDefined();
2209-
expect(challengeCall[2].config.headers).toBeDefined();
2210-
expect(challengeCall[2]).toBeDefined({ anOption: true });
2207+
expect(challengeCall[2]).toBeUndefined();
2208+
expect(challengeCall[3].config).toBeDefined();
2209+
expect(challengeCall[3].auth).toBeDefined();
2210+
expect(challengeCall[3].config.headers).toBeDefined();
2211+
expect(challengeCall[4]).toEqual({ anOption: true });
22112212
});
22122213
it('should return challenge with username created user', async () => {
22132214
spyOn(challengeAdapter, 'challenge').and.resolveTo({ token: 'test' });
@@ -2284,12 +2285,13 @@ describe('Auth Adapter features', () => {
22842285
const challengeCall = challengeAdapter.challenge.calls.argsFor(0);
22852286
expect(challengeAdapter.challenge).toHaveBeenCalledTimes(1);
22862287
expect(challengeCall[0]).toEqual({ someData: true });
2287-
expect(challengeCall[1] instanceof Parse.User).toBeTruthy();
2288-
expect(challengeCall[1].id).toEqual(user.id);
2289-
expect(challengeCall[2].config).toBeDefined();
2290-
expect(challengeCall[2].auth).toBeDefined();
2291-
expect(challengeCall[2].config.headers).toBeDefined();
2292-
expect(challengeCall[2]).toBeDefined({ anOption: true });
2288+
expect(challengeCall[1]).toEqual(undefined);
2289+
expect(challengeCall[2] instanceof Parse.User).toBeTruthy();
2290+
expect(challengeCall[2].id).toEqual(user.id);
2291+
expect(challengeCall[3].config).toBeDefined();
2292+
expect(challengeCall[3].auth).toBeDefined();
2293+
expect(challengeCall[3].config.headers).toBeDefined();
2294+
expect(challengeCall[4]).toEqual({ anOption: true });
22932295
});
22942296
it('should return challenge with authData created user', async () => {
22952297
spyOn(challengeAdapter, 'challenge').and.resolveTo({ token: 'test' });
@@ -2367,11 +2369,12 @@ describe('Auth Adapter features', () => {
23672369
const challengeCall = challengeAdapter.challenge.calls.argsFor(0);
23682370
expect(challengeAdapter.challenge).toHaveBeenCalledTimes(1);
23692371
expect(challengeCall[0]).toEqual({ someData: true });
2370-
expect(challengeCall[1] instanceof Parse.User).toBeTruthy();
2371-
expect(challengeCall[1].id).toEqual(user.id);
2372-
expect(challengeCall[2].config).toBeDefined();
2373-
expect(challengeCall[2].auth).toBeDefined();
2374-
expect(challengeCall[2].config.headers).toBeDefined();
2375-
expect(challengeCall[2]).toBeDefined({ anOption: true });
2372+
expect(challengeCall[1]).toEqual({ id: 'challengeAdapter' });
2373+
expect(challengeCall[2] instanceof Parse.User).toBeTruthy();
2374+
expect(challengeCall[2].id).toEqual(user.id);
2375+
expect(challengeCall[3].config).toBeDefined();
2376+
expect(challengeCall[3].auth).toBeDefined();
2377+
expect(challengeCall[3].config.headers).toBeDefined();
2378+
expect(challengeCall[4]).toEqual({ anOption: true });
23762379
});
23772380
});

src/Adapters/Auth/AuthAdapter.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,12 @@ export class AuthAdapter {
5050
/**
5151
*
5252
* @param challengeData: data provided by the client
53+
* @param authData: auth data provided by the client, can be used for validation
5354
* @param options: additional options
5455
* @param req: RestWrite instance with config/auth/data
5556
* @returns a promise that resolves, resolved value will be added to challenge response under challenge key
5657
*/
57-
challenge(challengeData, options, req) {
58+
challenge(challengeData, authData, options, req) {
5859
return Promise.resolve({});
5960
}
6061
}

src/Routers/UsersRouter.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,7 @@ export class UsersRouter extends ClassesRouter {
476476
acc[provider] =
477477
(await authAdapters[provider].challenge(
478478
challengeData[provider],
479+
authData && authData[provider],
479480
user ? Parse.User.fromJSON({ className: '_User', ...user }) : undefined,
480481
req,
481482
authAdapters[provider].options

0 commit comments

Comments
 (0)