Skip to content

Commit 677f466

Browse files
authored
fix(adapter-nextjs): secure: false is not set for localhost on sign-in (#14231)
1 parent 318c84e commit 677f466

16 files changed

+36
-74
lines changed

packages/adapter-nextjs/__tests__/auth/handlers/handleSignInCallbackRequest.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,7 @@ describe('handleSignInCallbackRequest', () => {
329329
});
330330
expect(mockCreateTokenCookiesSetOptions).toHaveBeenCalledWith(
331331
mockSetCookieOptions,
332+
mockOrigin,
332333
);
333334
expect(mockCreateSignInFlowProofCookies).toHaveBeenCalledWith({
334335
state: '',

packages/adapter-nextjs/__tests__/auth/handlers/handleSignInCallbackRequestForPagesRouter.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -386,6 +386,7 @@ describe('handleSignInCallbackRequest', () => {
386386
});
387387
expect(mockCreateTokenCookiesSetOptions).toHaveBeenCalledWith(
388388
mockSetCookieOptions,
389+
mockOrigin,
389390
);
390391
expect(mockCreateSignInFlowProofCookies).toHaveBeenCalledWith({
391392
state: '',

packages/adapter-nextjs/__tests__/auth/handlers/handleSignInSignUpRequest.test.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import {
1010
createSignInFlowProofCookies,
1111
createSignUpEndpoint,
1212
createUrlSearchParamsForSignInSignUp,
13-
isSSLOrigin,
1413
} from '../../../src/auth/utils';
1514

1615
jest.mock('../../../src/auth/utils');
@@ -28,7 +27,6 @@ const mockCreateSignUpEndpoint = jest.mocked(createSignUpEndpoint);
2827
const mockCreateUrlSearchParamsForSignInSignUp = jest.mocked(
2928
createUrlSearchParamsForSignInSignUp,
3029
);
31-
const mockIsSSLOrigin = jest.mocked(isSSLOrigin);
3230

3331
describe('handleSignInSignUpRequest', () => {
3432
const mockCustomState = 'mockCustomState';
@@ -40,10 +38,6 @@ describe('handleSignInSignUpRequest', () => {
4038
};
4139
const mockToCodeChallenge = jest.fn(() => 'mockCodeChallenge');
4240

43-
beforeAll(() => {
44-
mockIsSSLOrigin.mockReturnValue(true);
45-
});
46-
4741
afterEach(() => {
4842
mockAppendSetCookieHeaders.mockClear();
4943
mockCreateAuthFlowProofCookiesSetOptions.mockClear();
@@ -53,7 +47,6 @@ describe('handleSignInSignUpRequest', () => {
5347
mockCreateSignUpEndpoint.mockClear();
5448
mockCreateUrlSearchParamsForSignInSignUp.mockClear();
5549
mockToCodeChallenge.mockClear();
56-
mockIsSSLOrigin.mockClear();
5750
});
5851

5952
test.each(['signIn' as const, 'signUp' as const])(
@@ -152,17 +145,14 @@ describe('handleSignInSignUpRequest', () => {
152145

153146
expect(mockCreateAuthFlowProofCookiesSetOptions).toHaveBeenCalledWith(
154147
mockSetCookieOptions,
155-
{
156-
secure: true,
157-
},
148+
mockOrigin,
158149
);
159150

160151
expect(mockAppendSetCookieHeaders).toHaveBeenCalledWith(
161152
expect.any(Headers),
162153
mockCreateSignInFlowProofCookiesResult,
163154
mockCreateAuthFlowProofCookiesSetOptionsResult,
164155
);
165-
expect(isSSLOrigin).toHaveBeenCalledWith(mockOrigin);
166156
},
167157
);
168158
});

packages/adapter-nextjs/__tests__/auth/handlers/handleSignInSignUpRequestForPagesRouter.test.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import {
1111
createSignInFlowProofCookies,
1212
createSignUpEndpoint,
1313
createUrlSearchParamsForSignInSignUp,
14-
isSSLOrigin,
1514
} from '../../../src/auth/utils';
1615
import { createMockNextApiResponse } from '../testUtils';
1716

@@ -32,7 +31,6 @@ const mockCreateSignUpEndpoint = jest.mocked(createSignUpEndpoint);
3231
const mockCreateUrlSearchParamsForSignInSignUp = jest.mocked(
3332
createUrlSearchParamsForSignInSignUp,
3433
);
35-
const mockIsSSLOrigin = jest.mocked(isSSLOrigin);
3634

3735
describe('handleSignInSignUpRequest', () => {
3836
const mockCustomState = 'mockCustomState';
@@ -53,10 +51,6 @@ describe('handleSignInSignUpRequest', () => {
5351
mockResponse,
5452
} = createMockNextApiResponse();
5553

56-
beforeAll(() => {
57-
mockIsSSLOrigin.mockReturnValue(true);
58-
});
59-
6054
afterEach(() => {
6155
mockAppendSetCookieHeadersToNextApiResponse.mockClear();
6256
mockCreateAuthFlowProofCookiesSetOptions.mockClear();
@@ -66,7 +60,6 @@ describe('handleSignInSignUpRequest', () => {
6660
mockCreateSignUpEndpoint.mockClear();
6761
mockCreateUrlSearchParamsForSignInSignUp.mockClear();
6862
mockToCodeChallenge.mockClear();
69-
mockIsSSLOrigin.mockClear();
7063

7164
mockResponseAppendHeader.mockClear();
7265
mockResponseEnd.mockClear();
@@ -177,17 +170,14 @@ describe('handleSignInSignUpRequest', () => {
177170

178171
expect(mockCreateAuthFlowProofCookiesSetOptions).toHaveBeenCalledWith(
179172
mockSetCookieOptions,
180-
{
181-
secure: true,
182-
},
173+
mockOrigin,
183174
);
184175

185176
expect(mockAppendSetCookieHeadersToNextApiResponse).toHaveBeenCalledWith(
186177
mockResponse,
187178
mockCreateSignInFlowProofCookiesResult,
188179
mockCreateAuthFlowProofCookiesSetOptionsResult,
189180
);
190-
expect(isSSLOrigin).toHaveBeenCalledWith(mockOrigin);
191181
},
192182
);
193183
});

packages/adapter-nextjs/__tests__/auth/handlers/handleSignOutRequest.test.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
createAuthFlowProofCookiesSetOptions,
77
createLogoutEndpoint,
88
createSignOutFlowProofCookies,
9-
isSSLOrigin,
109
resolveRedirectSignOutUrl,
1110
} from '../../../src/auth/utils';
1211

@@ -21,20 +20,14 @@ const mockCreateSignOutFlowProofCookies = jest.mocked(
2120
createSignOutFlowProofCookies,
2221
);
2322
const mockResolveRedirectSignOutUrl = jest.mocked(resolveRedirectSignOutUrl);
24-
const mockIsSSLOrigin = jest.mocked(isSSLOrigin);
2523

2624
describe('handleSignOutRequest', () => {
27-
beforeAll(() => {
28-
mockIsSSLOrigin.mockReturnValue(true);
29-
});
30-
3125
afterEach(() => {
3226
mockAppendSetCookieHeaders.mockClear();
3327
mockCreateAuthFlowProofCookiesSetOptions.mockClear();
3428
mockCreateLogoutEndpoint.mockClear();
3529
mockCreateSignOutFlowProofCookies.mockClear();
3630
mockResolveRedirectSignOutUrl.mockClear();
37-
mockIsSSLOrigin.mockClear();
3831
});
3932

4033
it('returns a 302 response with the correct headers and cookies', async () => {
@@ -98,12 +91,9 @@ describe('handleSignOutRequest', () => {
9891
expect.any(URLSearchParams),
9992
);
10093
expect(mockCreateSignOutFlowProofCookies).toHaveBeenCalled();
101-
expect(mockIsSSLOrigin).toHaveBeenCalledWith(mockOrigin);
10294
expect(mockCreateAuthFlowProofCookiesSetOptions).toHaveBeenCalledWith(
10395
mockSetCookieOptions,
104-
{
105-
secure: true,
106-
},
96+
mockOrigin,
10797
);
10898
expect(mockAppendSetCookieHeaders).toHaveBeenCalledWith(
10999
expect.any(Headers),

packages/adapter-nextjs/__tests__/auth/handlers/handleSignOutRequestForPagesRouter.test.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {
66
createAuthFlowProofCookiesSetOptions,
77
createLogoutEndpoint,
88
createSignOutFlowProofCookies,
9-
isSSLOrigin,
109
resolveRedirectSignOutUrl,
1110
} from '../../../src/auth/utils';
1211
import { createMockNextApiResponse } from '../testUtils';
@@ -24,7 +23,6 @@ const mockCreateSignOutFlowProofCookies = jest.mocked(
2423
createSignOutFlowProofCookies,
2524
);
2625
const mockResolveRedirectSignOutUrl = jest.mocked(resolveRedirectSignOutUrl);
27-
const mockIsSSLOrigin = jest.mocked(isSSLOrigin);
2826

2927
describe('handleSignOutRequest', () => {
3028
const {
@@ -36,10 +34,6 @@ describe('handleSignOutRequest', () => {
3634
mockResponse,
3735
} = createMockNextApiResponse();
3836

39-
beforeAll(() => {
40-
mockIsSSLOrigin.mockReturnValue(true);
41-
});
42-
4337
afterEach(() => {
4438
mockAppendSetCookieHeadersToNextApiResponse.mockClear();
4539
mockCreateAuthFlowProofCookiesSetOptions.mockClear();
@@ -121,12 +115,9 @@ describe('handleSignOutRequest', () => {
121115
expect.any(URLSearchParams),
122116
);
123117
expect(mockCreateSignOutFlowProofCookies).toHaveBeenCalled();
124-
expect(mockIsSSLOrigin).toHaveBeenCalledWith(mockOrigin);
125118
expect(mockCreateAuthFlowProofCookiesSetOptions).toHaveBeenCalledWith(
126119
mockSetCookieOptions,
127-
{
128-
secure: true,
129-
},
120+
mockOrigin,
130121
);
131122
});
132123
});

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ describe('createAuthFlowProofCookiesSetOptions', () => {
4343
sameSite: 'strict',
4444
};
4545

46-
const options = createAuthFlowProofCookiesSetOptions(setCookieOptions);
46+
const options = createAuthFlowProofCookiesSetOptions(
47+
setCookieOptions,
48+
'https://example.com',
49+
);
4750

4851
expect(options).toEqual({
4952
domain: setCookieOptions?.domain,
@@ -61,9 +64,10 @@ describe('createAuthFlowProofCookiesSetOptions', () => {
6164
sameSite: 'strict',
6265
};
6366

64-
const options = createAuthFlowProofCookiesSetOptions(setCookieOptions, {
65-
secure: false,
66-
});
67+
const options = createAuthFlowProofCookiesSetOptions(
68+
setCookieOptions,
69+
'http://example.com',
70+
);
6771

6872
expect(options).toEqual({
6973
domain: setCookieOptions?.domain,

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,10 @@ describe('createTokenCookiesSetOptions', () => {
8383
expires: new Date('2024-09-17'),
8484
};
8585

86-
const result = createTokenCookiesSetOptions(mockSetCookieOptions);
86+
const result = createTokenCookiesSetOptions(
87+
mockSetCookieOptions,
88+
'https://example.com',
89+
);
8790

8891
expect(result).toEqual({
8992
domain: mockSetCookieOptions.domain,
@@ -97,7 +100,7 @@ describe('createTokenCookiesSetOptions', () => {
97100

98101
it('returns an object with the default expiry and sameSite properties', () => {
99102
const dateNowSpy = jest.spyOn(Date, 'now').mockReturnValue(0);
100-
const result = createTokenCookiesSetOptions({});
103+
const result = createTokenCookiesSetOptions({}, 'https://example.com');
101104

102105
expect(result).toEqual({
103106
domain: undefined,
@@ -118,9 +121,10 @@ describe('createTokenCookiesSetOptions', () => {
118121
expires: new Date('2024-09-17'),
119122
};
120123

121-
const result = createTokenCookiesSetOptions(mockSetCookieOptions, {
122-
secure: false,
123-
});
124+
const result = createTokenCookiesSetOptions(
125+
mockSetCookieOptions,
126+
'http://example.com',
127+
);
124128

125129
expect(result).toEqual({
126130
domain: mockSetCookieOptions.domain,

packages/adapter-nextjs/src/auth/handlers/handleSignInCallbackRequest.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export const handleSignInCallbackRequest: HandleSignInCallbackRequest = async ({
9696
tokensPayload,
9797
userPoolClientId,
9898
}),
99-
createTokenCookiesSetOptions(setCookieOptions),
99+
createTokenCookiesSetOptions(setCookieOptions, origin),
100100
);
101101
appendSetCookieHeaders(
102102
headers,

packages/adapter-nextjs/src/auth/handlers/handleSignInCallbackRequestForPagesRouter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ export const handleSignInCallbackRequestForPagesRouter: HandleSignInCallbackRequ
104104
tokensPayload,
105105
userPoolClientId,
106106
}),
107-
createTokenCookiesSetOptions(setCookieOptions),
107+
createTokenCookiesSetOptions(setCookieOptions, origin),
108108
);
109109
appendSetCookieHeadersToNextApiResponse(
110110
response,

0 commit comments

Comments
 (0)