@workos-inc/authkit-nextjs 2.14.0 → 2.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/auth.js +20 -4
- package/dist/esm/auth.js.map +1 -1
- package/dist/esm/types/auth.d.ts +4 -2
- package/package.json +1 -1
- package/src/auth.spec.ts +18 -0
- package/src/auth.ts +22 -2
package/dist/esm/auth.js
CHANGED
|
@@ -16,11 +16,27 @@ function revalidateTagCompat(tag) {
|
|
|
16
16
|
const fn = revalidateTag;
|
|
17
17
|
return fn(tag, 'max');
|
|
18
18
|
}
|
|
19
|
-
export async function getSignInUrl({ organizationId, loginHint, redirectUri, prompt, state, } = {}) {
|
|
20
|
-
return getAuthorizationUrl({
|
|
19
|
+
export async function getSignInUrl({ organizationId, loginHint, redirectUri, prompt, state, returnTo, } = {}) {
|
|
20
|
+
return getAuthorizationUrl({
|
|
21
|
+
organizationId,
|
|
22
|
+
screenHint: 'sign-in',
|
|
23
|
+
loginHint,
|
|
24
|
+
redirectUri,
|
|
25
|
+
prompt,
|
|
26
|
+
state,
|
|
27
|
+
returnPathname: returnTo,
|
|
28
|
+
});
|
|
21
29
|
}
|
|
22
|
-
export async function getSignUpUrl({ organizationId, loginHint, redirectUri, prompt, state, } = {}) {
|
|
23
|
-
return getAuthorizationUrl({
|
|
30
|
+
export async function getSignUpUrl({ organizationId, loginHint, redirectUri, prompt, state, returnTo, } = {}) {
|
|
31
|
+
return getAuthorizationUrl({
|
|
32
|
+
organizationId,
|
|
33
|
+
screenHint: 'sign-up',
|
|
34
|
+
loginHint,
|
|
35
|
+
redirectUri,
|
|
36
|
+
prompt,
|
|
37
|
+
state,
|
|
38
|
+
returnPathname: returnTo,
|
|
39
|
+
});
|
|
24
40
|
}
|
|
25
41
|
/**
|
|
26
42
|
* Sign out the user and delete the session cookie.
|
package/dist/esm/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,EAAE,GAAG,aAAuD,CAAC;IACnE,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,cAAc,EACd,SAAS,EACT,WAAW,EACX,MAAM,EACN,KAAK,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/types/auth.d.ts
CHANGED
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import type { SwitchToOrganizationOptions, UserInfo } from './interfaces.js';
|
|
2
|
-
export declare function getSignInUrl({ organizationId, loginHint, redirectUri, prompt, state, }?: {
|
|
2
|
+
export declare function getSignInUrl({ organizationId, loginHint, redirectUri, prompt, state, returnTo, }?: {
|
|
3
3
|
organizationId?: string;
|
|
4
4
|
loginHint?: string;
|
|
5
5
|
redirectUri?: string;
|
|
6
6
|
prompt?: 'consent';
|
|
7
7
|
state?: string;
|
|
8
|
+
returnTo?: string;
|
|
8
9
|
}): Promise<string>;
|
|
9
|
-
export declare function getSignUpUrl({ organizationId, loginHint, redirectUri, prompt, state, }?: {
|
|
10
|
+
export declare function getSignUpUrl({ organizationId, loginHint, redirectUri, prompt, state, returnTo, }?: {
|
|
10
11
|
organizationId?: string;
|
|
11
12
|
loginHint?: string;
|
|
12
13
|
redirectUri?: string;
|
|
13
14
|
prompt?: 'consent';
|
|
14
15
|
state?: string;
|
|
16
|
+
returnTo?: string;
|
|
15
17
|
}): Promise<string>;
|
|
16
18
|
/**
|
|
17
19
|
* Sign out the user and delete the session cookie.
|
package/package.json
CHANGED
package/src/auth.spec.ts
CHANGED
|
@@ -74,6 +74,15 @@ describe('auth.ts', () => {
|
|
|
74
74
|
expect(url).toBeDefined();
|
|
75
75
|
expect(() => new URL(url)).not.toThrow();
|
|
76
76
|
});
|
|
77
|
+
|
|
78
|
+
it('should include returnTo as returnPathname in the state parameter', async () => {
|
|
79
|
+
const url = await getSignInUrl({ returnTo: '/dashboard' });
|
|
80
|
+
const parsedUrl = new URL(url);
|
|
81
|
+
const state = parsedUrl.searchParams.get('state');
|
|
82
|
+
expect(state).toBeDefined();
|
|
83
|
+
const decoded = JSON.parse(atob(state!.replace(/-/g, '+').replace(/_/g, '/')));
|
|
84
|
+
expect(decoded.returnPathname).toBe('/dashboard');
|
|
85
|
+
});
|
|
77
86
|
});
|
|
78
87
|
|
|
79
88
|
it('should not include prompt when not specified for getSignInUrl', async () => {
|
|
@@ -101,6 +110,15 @@ describe('auth.ts', () => {
|
|
|
101
110
|
const url = await getSignUpUrl({ prompt: 'consent' });
|
|
102
111
|
expect(url).toContain('prompt=consent');
|
|
103
112
|
});
|
|
113
|
+
|
|
114
|
+
it('should include returnTo as returnPathname in the state parameter', async () => {
|
|
115
|
+
const url = await getSignUpUrl({ returnTo: '/welcome' });
|
|
116
|
+
const parsedUrl = new URL(url);
|
|
117
|
+
const state = parsedUrl.searchParams.get('state');
|
|
118
|
+
expect(state).toBeDefined();
|
|
119
|
+
const decoded = JSON.parse(atob(state!.replace(/-/g, '+').replace(/_/g, '/')));
|
|
120
|
+
expect(decoded.returnPathname).toBe('/welcome');
|
|
121
|
+
});
|
|
104
122
|
});
|
|
105
123
|
|
|
106
124
|
describe('switchToOrganization', () => {
|
package/src/auth.ts
CHANGED
|
@@ -26,14 +26,24 @@ export async function getSignInUrl({
|
|
|
26
26
|
redirectUri,
|
|
27
27
|
prompt,
|
|
28
28
|
state,
|
|
29
|
+
returnTo,
|
|
29
30
|
}: {
|
|
30
31
|
organizationId?: string;
|
|
31
32
|
loginHint?: string;
|
|
32
33
|
redirectUri?: string;
|
|
33
34
|
prompt?: 'consent';
|
|
34
35
|
state?: string;
|
|
36
|
+
returnTo?: string;
|
|
35
37
|
} = {}) {
|
|
36
|
-
return getAuthorizationUrl({
|
|
38
|
+
return getAuthorizationUrl({
|
|
39
|
+
organizationId,
|
|
40
|
+
screenHint: 'sign-in',
|
|
41
|
+
loginHint,
|
|
42
|
+
redirectUri,
|
|
43
|
+
prompt,
|
|
44
|
+
state,
|
|
45
|
+
returnPathname: returnTo,
|
|
46
|
+
});
|
|
37
47
|
}
|
|
38
48
|
|
|
39
49
|
export async function getSignUpUrl({
|
|
@@ -42,14 +52,24 @@ export async function getSignUpUrl({
|
|
|
42
52
|
redirectUri,
|
|
43
53
|
prompt,
|
|
44
54
|
state,
|
|
55
|
+
returnTo,
|
|
45
56
|
}: {
|
|
46
57
|
organizationId?: string;
|
|
47
58
|
loginHint?: string;
|
|
48
59
|
redirectUri?: string;
|
|
49
60
|
prompt?: 'consent';
|
|
50
61
|
state?: string;
|
|
62
|
+
returnTo?: string;
|
|
51
63
|
} = {}) {
|
|
52
|
-
return getAuthorizationUrl({
|
|
64
|
+
return getAuthorizationUrl({
|
|
65
|
+
organizationId,
|
|
66
|
+
screenHint: 'sign-up',
|
|
67
|
+
loginHint,
|
|
68
|
+
redirectUri,
|
|
69
|
+
prompt,
|
|
70
|
+
state,
|
|
71
|
+
returnPathname: returnTo,
|
|
72
|
+
});
|
|
53
73
|
}
|
|
54
74
|
|
|
55
75
|
/**
|