Skip to content

Commit d11c5ce

Browse files
authored
feat(adapter-nextjs): support sending lang param to managed login (#14322)
1 parent 34b927a commit d11c5ce

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

packages/adapter-nextjs/__tests__/auth/utils/createUrlSearchParams.test.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,23 @@ describe('createUrlSearchParamsForSignInSignUp', () => {
5454
'redirect_uri=https%3A%2F%2Fexample.com%2Fsignin&response_type=code&client_id=userPoolClientId&scope=openid&state=state&code_challenge=code_challenge&code_challenge_method=S256&identity_provider=Google',
5555
);
5656
});
57+
58+
it('returns URLSearchParams with the correct values when lang query parameter is supplied', () => {
59+
const url = 'https://example.com?lang=es';
60+
61+
const result = createUrlSearchParamsForSignInSignUp({
62+
url,
63+
oAuthConfig,
64+
userPoolClientId,
65+
state,
66+
origin,
67+
codeVerifier,
68+
});
69+
70+
expect(result.toString()).toBe(
71+
'redirect_uri=https%3A%2F%2Fexample.com%2Fsignin&response_type=code&client_id=userPoolClientId&scope=openid&state=state&code_challenge=code_challenge&code_challenge_method=S256&lang=es',
72+
);
73+
});
5774
});
5875

5976
describe('createUrlSearchParamsForTokenExchange', () => {

packages/adapter-nextjs/src/auth/utils/createUrlSearchParams.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { generateCodeVerifier } from 'aws-amplify/adapter-core';
66

77
import { resolveIdentityProviderFromUrl } from './resolveIdentityProviderFromUrl';
88
import { resolveRedirectSignInUrl } from './resolveRedirectUrl';
9+
import { getSearchParamValueFromUrl } from './getSearchParamValueFromUrl';
910

1011
export const createUrlSearchParamsForSignInSignUp = ({
1112
url,
@@ -23,6 +24,7 @@ export const createUrlSearchParamsForSignInSignUp = ({
2324
codeVerifier: ReturnType<typeof generateCodeVerifier>;
2425
}): URLSearchParams => {
2526
const resolvedProvider = resolveIdentityProviderFromUrl(url);
27+
const lang = getSearchParamValueFromUrl(url, 'lang');
2628

2729
const redirectUrlSearchParams = new URLSearchParams({
2830
redirect_uri: resolveRedirectSignInUrl(origin, oAuthConfig),
@@ -38,6 +40,10 @@ export const createUrlSearchParamsForSignInSignUp = ({
3840
redirectUrlSearchParams.append('identity_provider', resolvedProvider);
3941
}
4042

43+
if (lang) {
44+
redirectUrlSearchParams.append('lang', lang);
45+
}
46+
4147
return redirectUrlSearchParams;
4248
};
4349

0 commit comments

Comments
 (0)