@workos-inc/authkit-nextjs 1.4.1 → 2.0.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/README.md +17 -1
- package/dist/esm/actions.js +13 -2
- package/dist/esm/actions.js.map +1 -1
- package/dist/esm/components/authkit-provider.js +0 -5
- package/dist/esm/components/authkit-provider.js.map +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/actions.d.ts +3 -2
- package/dist/esm/types/components/authkit-provider.d.ts +0 -1
- package/dist/esm/types/index.d.ts +2 -1
- package/dist/esm/types/workos.d.ts +1 -1
- package/dist/esm/workos.js +1 -1
- package/package.json +1 -1
- package/src/actions.ts +15 -2
- package/src/components/authkit-provider.tsx +0 -6
- package/src/index.ts +2 -0
- package/src/workos.ts +1 -1
package/README.md
CHANGED
|
@@ -83,7 +83,7 @@ export const GET = handleAuth({ returnPathname: '/dashboard' });
|
|
|
83
83
|
If your application needs to persist data upon a successful authentication, like the `oauthTokens` from an upstream provider, you can pass in a `onSuccess` function that will get called after the user has successfully authenticated:
|
|
84
84
|
|
|
85
85
|
```ts
|
|
86
|
-
export const GET =
|
|
86
|
+
export const GET = handleAuth({
|
|
87
87
|
onSuccess: async ({ oauthTokens }) => {
|
|
88
88
|
await saveTokens(oauthTokens);
|
|
89
89
|
},
|
|
@@ -401,6 +401,22 @@ export default authkitMiddleware({
|
|
|
401
401
|
});
|
|
402
402
|
```
|
|
403
403
|
|
|
404
|
+
### Advanced: Direct access to the WorkOS client
|
|
405
|
+
|
|
406
|
+
For advanced use cases or functionality not covered by the helper methods, you can access the underlying WorkOS client directly:
|
|
407
|
+
|
|
408
|
+
```typescript
|
|
409
|
+
import { getWorkOS } from '@workos-inc/authkit-nextjs';
|
|
410
|
+
|
|
411
|
+
// Get the configured WorkOS client instance
|
|
412
|
+
const workos = getWorkOS();
|
|
413
|
+
|
|
414
|
+
// Use any WorkOS SDK method
|
|
415
|
+
const organizations = await workos.organizations.listOrganizations({
|
|
416
|
+
limit: 10,
|
|
417
|
+
});
|
|
418
|
+
````
|
|
419
|
+
|
|
404
420
|
### Debugging
|
|
405
421
|
|
|
406
422
|
To enable debug logs, initialize the middleware with the debug flag enabled.
|
package/dist/esm/actions.js
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
import { signOut } from './auth.js';
|
|
3
3
|
import { refreshSession, withAuth } from './session.js';
|
|
4
4
|
import { getWorkOS } from './workos.js';
|
|
5
|
+
/**
|
|
6
|
+
* This function is used to sanitize the auth object.
|
|
7
|
+
* Remove the accessToken from the auth object as it is not needed on the client side.
|
|
8
|
+
* @param value - The auth object to sanitize
|
|
9
|
+
* @returns The sanitized auth object
|
|
10
|
+
*/
|
|
11
|
+
function sanitize(value) {
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
13
|
+
const { accessToken, ...sanitized } = value;
|
|
14
|
+
return sanitized;
|
|
15
|
+
}
|
|
5
16
|
/**
|
|
6
17
|
* This action is only accessible to authenticated users,
|
|
7
18
|
* there is no need to check the session here as the middleware will
|
|
@@ -17,9 +28,9 @@ export const getOrganizationAction = async (organizationId) => {
|
|
|
17
28
|
return await getWorkOS().organizations.getOrganization(organizationId);
|
|
18
29
|
};
|
|
19
30
|
export const getAuthAction = async (options) => {
|
|
20
|
-
return await withAuth(options);
|
|
31
|
+
return sanitize(await withAuth(options));
|
|
21
32
|
};
|
|
22
33
|
export const refreshAuthAction = async ({ ensureSignedIn, organizationId, }) => {
|
|
23
|
-
return await refreshSession({ ensureSignedIn, organizationId });
|
|
34
|
+
return sanitize(await refreshSession({ ensureSignedIn, organizationId }));
|
|
24
35
|
};
|
|
25
36
|
//# sourceMappingURL=actions.js.map
|
package/dist/esm/actions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/actions.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,SAAS,QAAQ,CAAkC,KAAQ;IACzD,6DAA6D;IAC7D,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,IAAI,EAAE;IAC3C,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EAAE,QAAQ,KAA4B,EAAE,EAAE,EAAE;IACpF,MAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,EAAE,cAAsB,EAAE,EAAE;IACpE,OAAO,MAAM,SAAS,EAAE,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAAsC,EAAE,EAAE;IAC5E,OAAO,QAAQ,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAAE,EACtC,cAAc,EACd,cAAc,GAIf,EAAE,EAAE;IACH,OAAO,QAAQ,CAAC,MAAM,cAAc,CAAC,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC,CAAC"}
|
|
@@ -10,7 +10,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }) => {
|
|
|
10
10
|
const [permissions, setPermissions] = useState(undefined);
|
|
11
11
|
const [entitlements, setEntitlements] = useState(undefined);
|
|
12
12
|
const [impersonator, setImpersonator] = useState(undefined);
|
|
13
|
-
const [accessToken, setAccessToken] = useState(undefined);
|
|
14
13
|
const [loading, setLoading] = useState(true);
|
|
15
14
|
const getAuth = async ({ ensureSignedIn = false } = {}) => {
|
|
16
15
|
try {
|
|
@@ -22,7 +21,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }) => {
|
|
|
22
21
|
setPermissions(auth.permissions);
|
|
23
22
|
setEntitlements(auth.entitlements);
|
|
24
23
|
setImpersonator(auth.impersonator);
|
|
25
|
-
setAccessToken(auth.accessToken);
|
|
26
24
|
}
|
|
27
25
|
catch (error) {
|
|
28
26
|
setUser(null);
|
|
@@ -32,7 +30,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }) => {
|
|
|
32
30
|
setPermissions(undefined);
|
|
33
31
|
setEntitlements(undefined);
|
|
34
32
|
setImpersonator(undefined);
|
|
35
|
-
setAccessToken(undefined);
|
|
36
33
|
}
|
|
37
34
|
finally {
|
|
38
35
|
setLoading(false);
|
|
@@ -49,7 +46,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }) => {
|
|
|
49
46
|
setPermissions(auth.permissions);
|
|
50
47
|
setEntitlements(auth.entitlements);
|
|
51
48
|
setImpersonator(auth.impersonator);
|
|
52
|
-
setAccessToken(auth.accessToken);
|
|
53
49
|
}
|
|
54
50
|
catch (error) {
|
|
55
51
|
return error instanceof Error ? { error: error.message } : { error: String(error) };
|
|
@@ -115,7 +111,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }) => {
|
|
|
115
111
|
permissions,
|
|
116
112
|
entitlements,
|
|
117
113
|
impersonator,
|
|
118
|
-
accessToken,
|
|
119
114
|
loading,
|
|
120
115
|
getAuth,
|
|
121
116
|
refreshAuth,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authkit-provider.js","sourceRoot":"","sources":["../../../src/components/authkit-provider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,EAAE,EAAE,aAAa,EAAa,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"authkit-provider.js","sourceRoot":"","sources":["../../../src/components/authkit-provider.tsx"],"names":[],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -2,8 +2,9 @@ import { handleAuth } from './authkit-callback-route.js';
|
|
|
2
2
|
import { authkit, authkitMiddleware } from './middleware.js';
|
|
3
3
|
import { withAuth, refreshSession } from './session.js';
|
|
4
4
|
import { getSignInUrl, getSignUpUrl, signOut } from './auth.js';
|
|
5
|
+
import { getWorkOS } from './workos.js';
|
|
5
6
|
export * from './interfaces.js';
|
|
6
|
-
export { handleAuth,
|
|
7
|
+
export { getWorkOS, handleAuth,
|
|
7
8
|
//
|
|
8
9
|
authkitMiddleware, authkit,
|
|
9
10
|
//
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EACL,SAAS,EACT,UAAU;AACV,EAAE;AACF,iBAAiB,EACjB,OAAO;AACP,EAAE;AACF,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,OAAO,GACR,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { NoUserInfo, UserInfo } from './interfaces.js';
|
|
1
2
|
/**
|
|
2
3
|
* This action is only accessible to authenticated users,
|
|
3
4
|
* there is no need to check the session here as the middleware will
|
|
@@ -10,8 +11,8 @@ export declare const handleSignOutAction: ({ returnTo }?: {
|
|
|
10
11
|
export declare const getOrganizationAction: (organizationId: string) => Promise<import("@workos-inc/node").Organization>;
|
|
11
12
|
export declare const getAuthAction: (options?: {
|
|
12
13
|
ensureSignedIn?: boolean;
|
|
13
|
-
}) => Promise<
|
|
14
|
+
}) => Promise<Omit<UserInfo | NoUserInfo, "accessToken">>;
|
|
14
15
|
export declare const refreshAuthAction: ({ ensureSignedIn, organizationId, }: {
|
|
15
16
|
ensureSignedIn?: boolean | undefined;
|
|
16
17
|
organizationId?: string | undefined;
|
|
17
|
-
}) => Promise<
|
|
18
|
+
}) => Promise<Omit<UserInfo | NoUserInfo, "accessToken">>;
|
|
@@ -2,5 +2,6 @@ import { handleAuth } from './authkit-callback-route.js';
|
|
|
2
2
|
import { authkit, authkitMiddleware } from './middleware.js';
|
|
3
3
|
import { withAuth, refreshSession } from './session.js';
|
|
4
4
|
import { getSignInUrl, getSignUpUrl, signOut } from './auth.js';
|
|
5
|
+
import { getWorkOS } from './workos.js';
|
|
5
6
|
export * from './interfaces.js';
|
|
6
|
-
export { handleAuth, authkitMiddleware, authkit, getSignInUrl, getSignUpUrl, withAuth, refreshSession, signOut, };
|
|
7
|
+
export { getWorkOS, handleAuth, authkitMiddleware, authkit, getSignInUrl, getSignUpUrl, withAuth, refreshSession, signOut, };
|
package/dist/esm/workos.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WorkOS } from '@workos-inc/node';
|
|
2
2
|
import { WORKOS_API_HOSTNAME, WORKOS_API_KEY, WORKOS_API_HTTPS, WORKOS_API_PORT } from './env-variables.js';
|
|
3
3
|
import { lazy } from './utils.js';
|
|
4
|
-
export const VERSION = '
|
|
4
|
+
export const VERSION = '2.0.0';
|
|
5
5
|
const options = {
|
|
6
6
|
apiHostname: WORKOS_API_HOSTNAME,
|
|
7
7
|
https: WORKOS_API_HTTPS ? WORKOS_API_HTTPS === 'true' : true,
|
package/package.json
CHANGED
package/src/actions.ts
CHANGED
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
'use server';
|
|
2
2
|
|
|
3
3
|
import { signOut } from './auth.js';
|
|
4
|
+
import { NoUserInfo, UserInfo } from './interfaces.js';
|
|
4
5
|
import { refreshSession, withAuth } from './session.js';
|
|
5
6
|
import { getWorkOS } from './workos.js';
|
|
6
7
|
|
|
8
|
+
/**
|
|
9
|
+
* This function is used to sanitize the auth object.
|
|
10
|
+
* Remove the accessToken from the auth object as it is not needed on the client side.
|
|
11
|
+
* @param value - The auth object to sanitize
|
|
12
|
+
* @returns The sanitized auth object
|
|
13
|
+
*/
|
|
14
|
+
function sanitize<T extends UserInfo | NoUserInfo>(value: T) {
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
16
|
+
const { accessToken, ...sanitized } = value;
|
|
17
|
+
return sanitized;
|
|
18
|
+
}
|
|
19
|
+
|
|
7
20
|
/**
|
|
8
21
|
* This action is only accessible to authenticated users,
|
|
9
22
|
* there is no need to check the session here as the middleware will
|
|
@@ -22,7 +35,7 @@ export const getOrganizationAction = async (organizationId: string) => {
|
|
|
22
35
|
};
|
|
23
36
|
|
|
24
37
|
export const getAuthAction = async (options?: { ensureSignedIn?: boolean }) => {
|
|
25
|
-
return await withAuth(options);
|
|
38
|
+
return sanitize(await withAuth(options));
|
|
26
39
|
};
|
|
27
40
|
|
|
28
41
|
export const refreshAuthAction = async ({
|
|
@@ -32,5 +45,5 @@ export const refreshAuthAction = async ({
|
|
|
32
45
|
ensureSignedIn?: boolean;
|
|
33
46
|
organizationId?: string;
|
|
34
47
|
}) => {
|
|
35
|
-
return await refreshSession({ ensureSignedIn, organizationId });
|
|
48
|
+
return sanitize(await refreshSession({ ensureSignedIn, organizationId }));
|
|
36
49
|
};
|
|
@@ -12,7 +12,6 @@ type AuthContextType = {
|
|
|
12
12
|
permissions: string[] | undefined;
|
|
13
13
|
entitlements: string[] | undefined;
|
|
14
14
|
impersonator: Impersonator | undefined;
|
|
15
|
-
accessToken: string | undefined;
|
|
16
15
|
loading: boolean;
|
|
17
16
|
getAuth: (options?: { ensureSignedIn?: boolean }) => Promise<void>;
|
|
18
17
|
refreshAuth: (options?: { ensureSignedIn?: boolean; organizationId?: string }) => Promise<void | { error: string }>;
|
|
@@ -38,7 +37,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }: AuthKitProviderP
|
|
|
38
37
|
const [permissions, setPermissions] = useState<string[] | undefined>(undefined);
|
|
39
38
|
const [entitlements, setEntitlements] = useState<string[] | undefined>(undefined);
|
|
40
39
|
const [impersonator, setImpersonator] = useState<Impersonator | undefined>(undefined);
|
|
41
|
-
const [accessToken, setAccessToken] = useState<string | undefined>(undefined);
|
|
42
40
|
const [loading, setLoading] = useState(true);
|
|
43
41
|
|
|
44
42
|
const getAuth = async ({ ensureSignedIn = false }: { ensureSignedIn?: boolean } = {}) => {
|
|
@@ -51,7 +49,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }: AuthKitProviderP
|
|
|
51
49
|
setPermissions(auth.permissions);
|
|
52
50
|
setEntitlements(auth.entitlements);
|
|
53
51
|
setImpersonator(auth.impersonator);
|
|
54
|
-
setAccessToken(auth.accessToken);
|
|
55
52
|
} catch (error) {
|
|
56
53
|
setUser(null);
|
|
57
54
|
setSessionId(undefined);
|
|
@@ -60,7 +57,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }: AuthKitProviderP
|
|
|
60
57
|
setPermissions(undefined);
|
|
61
58
|
setEntitlements(undefined);
|
|
62
59
|
setImpersonator(undefined);
|
|
63
|
-
setAccessToken(undefined);
|
|
64
60
|
} finally {
|
|
65
61
|
setLoading(false);
|
|
66
62
|
}
|
|
@@ -81,7 +77,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }: AuthKitProviderP
|
|
|
81
77
|
setPermissions(auth.permissions);
|
|
82
78
|
setEntitlements(auth.entitlements);
|
|
83
79
|
setImpersonator(auth.impersonator);
|
|
84
|
-
setAccessToken(auth.accessToken);
|
|
85
80
|
} catch (error) {
|
|
86
81
|
return error instanceof Error ? { error: error.message } : { error: String(error) };
|
|
87
82
|
} finally {
|
|
@@ -154,7 +149,6 @@ export const AuthKitProvider = ({ children, onSessionExpired }: AuthKitProviderP
|
|
|
154
149
|
permissions,
|
|
155
150
|
entitlements,
|
|
156
151
|
impersonator,
|
|
157
|
-
accessToken,
|
|
158
152
|
loading,
|
|
159
153
|
getAuth,
|
|
160
154
|
refreshAuth,
|
package/src/index.ts
CHANGED
|
@@ -2,10 +2,12 @@ import { handleAuth } from './authkit-callback-route.js';
|
|
|
2
2
|
import { authkit, authkitMiddleware } from './middleware.js';
|
|
3
3
|
import { withAuth, refreshSession } from './session.js';
|
|
4
4
|
import { getSignInUrl, getSignUpUrl, signOut } from './auth.js';
|
|
5
|
+
import { getWorkOS } from './workos.js';
|
|
5
6
|
|
|
6
7
|
export * from './interfaces.js';
|
|
7
8
|
|
|
8
9
|
export {
|
|
10
|
+
getWorkOS,
|
|
9
11
|
handleAuth,
|
|
10
12
|
//
|
|
11
13
|
authkitMiddleware,
|
package/src/workos.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { WorkOS } from '@workos-inc/node';
|
|
|
2
2
|
import { WORKOS_API_HOSTNAME, WORKOS_API_KEY, WORKOS_API_HTTPS, WORKOS_API_PORT } from './env-variables.js';
|
|
3
3
|
import { lazy } from './utils.js';
|
|
4
4
|
|
|
5
|
-
export const VERSION = '
|
|
5
|
+
export const VERSION = '2.0.0';
|
|
6
6
|
|
|
7
7
|
const options = {
|
|
8
8
|
apiHostname: WORKOS_API_HOSTNAME,
|