@workos-inc/authkit-nextjs 0.17.2 → 1.0.1

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.
Files changed (63) hide show
  1. package/README.md +102 -25
  2. package/dist/esm/actions.js +11 -0
  3. package/dist/esm/actions.js.map +1 -1
  4. package/dist/esm/components/authkit-provider.js +128 -0
  5. package/dist/esm/components/authkit-provider.js.map +1 -0
  6. package/dist/esm/components/button.js.map +1 -0
  7. package/dist/esm/{impersonation.js → components/impersonation.js} +12 -7
  8. package/dist/esm/components/impersonation.js.map +1 -0
  9. package/dist/esm/components/index.js +4 -0
  10. package/dist/esm/components/index.js.map +1 -0
  11. package/dist/esm/components/min-max-button.js.map +1 -0
  12. package/dist/esm/cookie.js +15 -12
  13. package/dist/esm/cookie.js.map +1 -1
  14. package/dist/esm/env-variables.js +5 -2
  15. package/dist/esm/env-variables.js.map +1 -1
  16. package/dist/esm/index.js +4 -8
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/middleware.js +5 -2
  19. package/dist/esm/middleware.js.map +1 -1
  20. package/dist/esm/session.js +117 -93
  21. package/dist/esm/session.js.map +1 -1
  22. package/dist/esm/types/actions.d.ts +6 -0
  23. package/dist/esm/types/components/authkit-provider.d.ts +33 -0
  24. package/dist/esm/types/{impersonation.d.ts → components/impersonation.d.ts} +1 -1
  25. package/dist/esm/types/components/index.d.ts +3 -0
  26. package/dist/esm/types/cookie.d.ts +4 -0
  27. package/dist/esm/types/env-variables.d.ts +2 -2
  28. package/dist/esm/types/index.d.ts +3 -5
  29. package/dist/esm/types/interfaces.d.ts +11 -0
  30. package/dist/esm/types/middleware.d.ts +3 -2
  31. package/dist/esm/types/session.d.ts +5 -28
  32. package/dist/esm/types/utils.d.ts +1 -1
  33. package/dist/esm/types/workos.d.ts +1 -1
  34. package/dist/esm/utils.js +5 -3
  35. package/dist/esm/utils.js.map +1 -1
  36. package/dist/esm/workos.js +1 -1
  37. package/dist/esm/workos.js.map +1 -1
  38. package/package.json +11 -1
  39. package/src/actions.ts +20 -0
  40. package/src/components/authkit-provider.tsx +169 -0
  41. package/src/{impersonation.tsx → components/impersonation.tsx} +14 -7
  42. package/src/components/index.ts +4 -0
  43. package/src/cookie.ts +33 -12
  44. package/src/env-variables.ts +7 -2
  45. package/src/index.ts +3 -8
  46. package/src/interfaces.ts +13 -0
  47. package/src/middleware.ts +8 -4
  48. package/src/session.ts +159 -110
  49. package/src/utils.ts +6 -3
  50. package/src/workos.ts +1 -1
  51. package/dist/esm/authkit-provider.js +0 -52
  52. package/dist/esm/authkit-provider.js.map +0 -1
  53. package/dist/esm/button.js.map +0 -1
  54. package/dist/esm/impersonation.js.map +0 -1
  55. package/dist/esm/min-max-button.js.map +0 -1
  56. package/dist/esm/types/authkit-provider.d.ts +0 -11
  57. package/src/authkit-provider.tsx +0 -66
  58. /package/dist/esm/{button.js → components/button.js} +0 -0
  59. /package/dist/esm/{min-max-button.js → components/min-max-button.js} +0 -0
  60. /package/dist/esm/types/{button.d.ts → components/button.d.ts} +0 -0
  61. /package/dist/esm/types/{min-max-button.d.ts → components/min-max-button.d.ts} +0 -0
  62. /package/src/{button.tsx → components/button.tsx} +0 -0
  63. /package/src/{min-max-button.tsx → components/min-max-button.tsx} +0 -0
@@ -12,7 +12,6 @@ import { parse, tokensToRegexp } from 'path-to-regexp';
12
12
  import { redirectWithFallback } from './utils.js';
13
13
  const sessionHeaderName = 'x-workos-session';
14
14
  const middlewareHeaderName = 'x-workos-middleware';
15
- const redirectUriHeaderName = 'x-redirect-uri';
16
15
  const signUpPathsHeaderName = 'x-sign-up-paths';
17
16
  const JWKS = createRemoteJWKSet(new URL(workos.userManagement.getJwksUrl(WORKOS_CLIENT_ID)));
18
17
  async function encryptSession(session) {
@@ -21,35 +20,20 @@ async function encryptSession(session) {
21
20
  ttl: 0,
22
21
  });
23
22
  }
24
- async function updateSession(request, debug, middlewareAuth, redirectUri, signUpPaths) {
23
+ async function updateSessionMiddleware(request, debug, middlewareAuth, redirectUri, signUpPaths) {
25
24
  if (!redirectUri && !WORKOS_REDIRECT_URI) {
26
25
  throw new Error('You must provide a redirect URI in the AuthKit middleware or in the environment variables.');
27
26
  }
28
27
  if (!WORKOS_COOKIE_PASSWORD || WORKOS_COOKIE_PASSWORD.length < 32) {
29
28
  throw new Error('You must provide a valid cookie password that is at least 32 characters in the environment variables.');
30
29
  }
31
- const session = await getSessionFromCookie();
32
- const newRequestHeaders = new Headers(request.headers);
33
- // We store the current request url in a custom header, so we can always have access to it
34
- // This is because on hard navigations we don't have access to `next-url` but need to get the current
35
- // `pathname` to be able to return the users where they came from before sign-in
36
- newRequestHeaders.set('x-url', request.url);
37
- // Record that the request was routed through the middleware so we can check later for DX purposes
38
- newRequestHeaders.set(middlewareHeaderName, 'true');
39
- // Record the sign up paths so we can use it later
40
- if (signUpPaths.length > 0) {
41
- newRequestHeaders.set(signUpPathsHeaderName, signUpPaths.join(','));
42
- }
43
30
  let url;
44
- // If the redirect URI is set, store it in the headers so we can use it later
45
31
  if (redirectUri) {
46
- newRequestHeaders.set(redirectUriHeaderName, redirectUri);
47
32
  url = new URL(redirectUri);
48
33
  }
49
34
  else {
50
35
  url = new URL(WORKOS_REDIRECT_URI);
51
36
  }
52
- newRequestHeaders.delete(sessionHeaderName);
53
37
  if (middlewareAuth.enabled &&
54
38
  url.pathname === request.nextUrl.pathname &&
55
39
  !middlewareAuth.unauthenticatedPaths.includes(url.pathname)) {
@@ -66,47 +50,82 @@ async function updateSession(request, debug, middlewareAuth, redirectUri, signUp
66
50
  const pathRegex = getMiddlewareAuthPathRegex(pathGlob);
67
51
  return pathRegex.exec(request.nextUrl.pathname);
68
52
  });
53
+ const { session, headers, authorizationUrl } = await updateSession(request, {
54
+ debug,
55
+ redirectUri,
56
+ screenHint: getScreenHint(signUpPaths, request.nextUrl.pathname),
57
+ });
69
58
  // If the user is logged out and this path isn't on the allowlist for logged out paths, redirect to AuthKit.
70
- if (middlewareAuth.enabled && matchedPaths.length === 0 && !session) {
71
- if (debug)
59
+ if (middlewareAuth.enabled && matchedPaths.length === 0 && !session.user) {
60
+ if (debug) {
72
61
  console.log(`Unauthenticated user on protected route ${request.url}, redirecting to AuthKit`);
73
- const redirectTo = await getAuthorizationUrl({
74
- returnPathname: getReturnPathname(request.url),
75
- redirectUri: redirectUri,
76
- screenHint: getScreenHint(signUpPaths, request.nextUrl.pathname),
77
- });
78
- return redirectWithFallback(redirectTo);
62
+ }
63
+ return redirectWithFallback(authorizationUrl, headers);
64
+ }
65
+ // Record the sign up paths so we can use them later
66
+ if (signUpPaths.length > 0) {
67
+ headers.set(signUpPathsHeaderName, signUpPaths.join(','));
79
68
  }
80
- // If no session, just continue
69
+ return NextResponse.next({
70
+ headers,
71
+ });
72
+ }
73
+ async function updateSession(request, options = { debug: false }) {
74
+ const session = await getSessionFromCookie(request);
75
+ const newRequestHeaders = new Headers(request.headers);
76
+ // Record that the request was routed through the middleware so we can check later for DX purposes
77
+ newRequestHeaders.set(middlewareHeaderName, 'true');
78
+ // We store the current request url in a custom header, so we can always have access to it
79
+ // This is because on hard navigations we don't have access to `next-url` but need to get the current
80
+ // `pathname` to be able to return the users where they came from before sign-in
81
+ newRequestHeaders.set('x-url', request.url);
82
+ newRequestHeaders.delete(sessionHeaderName);
81
83
  if (!session) {
82
- return NextResponse.next({
83
- request: { headers: newRequestHeaders },
84
- });
84
+ if (options.debug) {
85
+ console.log('No session found from cookie');
86
+ }
87
+ return {
88
+ session: { user: null },
89
+ headers: newRequestHeaders,
90
+ authorizationUrl: await getAuthorizationUrl({
91
+ returnPathname: getReturnPathname(request.url),
92
+ redirectUri: options.redirectUri || WORKOS_REDIRECT_URI,
93
+ screenHint: options.screenHint,
94
+ }),
95
+ };
85
96
  }
86
97
  const hasValidSession = await verifyAccessToken(session.accessToken);
87
98
  const cookieName = WORKOS_COOKIE_NAME || 'wos-session';
88
- const nextCookies = await cookies();
89
99
  if (hasValidSession) {
90
- if (debug)
91
- console.log('Session is valid');
92
- // set the x-workos-session header according to the current cookie value
93
- newRequestHeaders.set(sessionHeaderName, nextCookies.get(cookieName).value);
94
- return NextResponse.next({
95
- request: { headers: newRequestHeaders },
96
- });
100
+ newRequestHeaders.set(sessionHeaderName, request.cookies.get(cookieName).value);
101
+ const { sid: sessionId, org_id: organizationId, role, permissions, entitlements, } = decodeJwt(session.accessToken);
102
+ return {
103
+ session: {
104
+ sessionId,
105
+ user: session.user,
106
+ organizationId,
107
+ role,
108
+ permissions,
109
+ entitlements,
110
+ impersonator: session.impersonator,
111
+ accessToken: session.accessToken,
112
+ },
113
+ headers: newRequestHeaders,
114
+ };
115
+ }
116
+ if (options.debug) {
117
+ console.log(`Session invalid. Refreshing access token that ends in ${session.accessToken.slice(-10)}`);
97
118
  }
98
119
  try {
99
- if (debug)
100
- console.log(`Session invalid. Refreshing access token that ends in ${session.accessToken.slice(-10)}`);
101
- const { org_id: organizationId } = decodeJwt(session.accessToken);
102
- // If the session is invalid (i.e. the access token has expired) attempt to re-authenticate with the refresh token
120
+ const { org_id: organizationIdFromAccessToken } = decodeJwt(session.accessToken);
103
121
  const { accessToken, refreshToken, user, impersonator } = await workos.userManagement.authenticateWithRefreshToken({
104
122
  clientId: WORKOS_CLIENT_ID,
105
123
  refreshToken: session.refreshToken,
106
- organizationId,
124
+ organizationId: organizationIdFromAccessToken,
107
125
  });
108
- if (debug)
109
- console.log(`Refresh successful. New access token ends in ${accessToken.slice(-10)}`);
126
+ if (options.debug) {
127
+ console.log('Session successfully refreshed');
128
+ }
110
129
  // Encrypt session with new access and refresh tokens
111
130
  const encryptedSession = await encryptSession({
112
131
  accessToken,
@@ -114,24 +133,38 @@ async function updateSession(request, debug, middlewareAuth, redirectUri, signUp
114
133
  user,
115
134
  impersonator,
116
135
  });
136
+ newRequestHeaders.append('Set-Cookie', `${cookieName}=${encryptedSession}; ${getCookieOptions(request.url, true)}`);
117
137
  newRequestHeaders.set(sessionHeaderName, encryptedSession);
118
- const response = NextResponse.next({
119
- request: { headers: newRequestHeaders },
120
- });
121
- // update the cookie
122
- response.cookies.set(cookieName, encryptedSession, getCookieOptions(redirectUri));
123
- return response;
138
+ const { sid: sessionId, org_id: organizationId, role, permissions, entitlements, } = decodeJwt(accessToken);
139
+ return {
140
+ session: {
141
+ sessionId,
142
+ user,
143
+ organizationId,
144
+ role,
145
+ permissions,
146
+ entitlements,
147
+ impersonator,
148
+ accessToken,
149
+ },
150
+ headers: newRequestHeaders,
151
+ };
124
152
  }
125
153
  catch (e) {
126
- if (debug)
127
- console.log('Failed to refresh. Deleting cookie and redirecting.', e);
128
- nextCookies.delete(cookieName);
154
+ if (options.debug) {
155
+ console.log('Failed to refresh. Deleting cookie.', e);
156
+ }
157
+ // When we need to delete a cookie, return it as a header as you can't delete cookies from edge middleware
158
+ const deleteCookie = `${cookieName}=; Expires=${new Date(0).toUTCString()}; ${getCookieOptions(request.url, true, true)}`;
159
+ newRequestHeaders.append('Set-Cookie', deleteCookie);
160
+ return {
161
+ session: { user: null },
162
+ headers: newRequestHeaders,
163
+ authorizationUrl: await getAuthorizationUrl({
164
+ returnPathname: getReturnPathname(request.url),
165
+ }),
166
+ };
129
167
  }
130
- // If we get here, the session is invalid and the user needs to sign in again.
131
- // We redirect to the current URL which will trigger the middleware again.
132
- // This is outside of the above block because you cannot redirect in Next.js
133
- // from inside a try/catch block.
134
- return redirectWithFallback(request.url);
135
168
  }
136
169
  /* istanbul ignore next */
137
170
  async function refreshSession({ organizationId: nextOrganizationId, ensureSignedIn = false, } = {}) {
@@ -143,11 +176,20 @@ async function refreshSession({ organizationId: nextOrganizationId, ensureSigned
143
176
  return { user: null };
144
177
  }
145
178
  const { org_id: organizationIdFromAccessToken } = decodeJwt(session.accessToken);
146
- const { accessToken, refreshToken, user, impersonator } = await workos.userManagement.authenticateWithRefreshToken({
147
- clientId: WORKOS_CLIENT_ID,
148
- refreshToken: session.refreshToken,
149
- organizationId: nextOrganizationId !== null && nextOrganizationId !== void 0 ? nextOrganizationId : organizationIdFromAccessToken,
150
- });
179
+ let refreshResult;
180
+ try {
181
+ refreshResult = await workos.userManagement.authenticateWithRefreshToken({
182
+ clientId: WORKOS_CLIENT_ID,
183
+ refreshToken: session.refreshToken,
184
+ organizationId: nextOrganizationId !== null && nextOrganizationId !== void 0 ? nextOrganizationId : organizationIdFromAccessToken,
185
+ });
186
+ }
187
+ catch (error) {
188
+ throw new Error(`Failed to refresh session: ${error instanceof Error ? error.message : String(error)}`, {
189
+ cause: error,
190
+ });
191
+ }
192
+ const { accessToken, refreshToken, user, impersonator } = refreshResult;
151
193
  // Encrypt session with new access and refresh tokens
152
194
  const encryptedSession = await encryptSession({
153
195
  accessToken,
@@ -238,46 +280,28 @@ async function verifyAccessToken(accessToken) {
238
280
  return false;
239
281
  }
240
282
  }
241
- async function getSessionFromCookie(response) {
242
- var _a;
283
+ async function getSessionFromCookie(request) {
243
284
  const cookieName = WORKOS_COOKIE_NAME || 'wos-session';
244
- const nextCookies = await cookies();
245
- const cookie = response ? response.cookies.get(cookieName) : nextCookies.get(cookieName);
285
+ let cookie;
286
+ if (request) {
287
+ cookie = request.cookies.get(cookieName);
288
+ }
289
+ else {
290
+ const nextCookies = await cookies();
291
+ cookie = nextCookies.get(cookieName);
292
+ }
246
293
  if (cookie) {
247
- return unsealData((_a = cookie.value) !== null && _a !== void 0 ? _a : cookie, {
294
+ return unsealData(cookie.value, {
248
295
  password: WORKOS_COOKIE_PASSWORD,
249
296
  });
250
297
  }
251
298
  }
252
- /**
253
- * Retrieves the session from the cookie. Meant for use in the middleware, for client side use `withAuth` instead.
254
- *
255
- * @returns UserInfo | NoUserInfo
256
- */
257
- async function getSession(response) {
258
- const session = await getSessionFromCookie(response);
259
- if (!session)
260
- return { user: null };
261
- if (await verifyAccessToken(session.accessToken)) {
262
- const { sid: sessionId, org_id: organizationId, role, permissions, entitlements, } = decodeJwt(session.accessToken);
263
- return {
264
- sessionId,
265
- user: session.user,
266
- organizationId,
267
- role,
268
- permissions,
269
- entitlements,
270
- impersonator: session.impersonator,
271
- accessToken: session.accessToken,
272
- };
273
- }
274
- }
275
299
  async function getSessionFromHeader() {
276
300
  const headersList = await headers();
277
301
  const hasMiddleware = Boolean(headersList.get(middlewareHeaderName));
278
302
  if (!hasMiddleware) {
279
303
  const url = headersList.get('x-url');
280
- throw new Error(`You are calling 'withAuth' on ${url} that isn’t covered by the AuthKit middleware. Make sure it is running on all paths you are calling 'withAuth' from by updating your middleware config in 'middleware.(js|ts)'.`);
304
+ throw new Error(`You are calling 'withAuth' on ${url !== null && url !== void 0 ? url : 'a route'} that isn’t covered by the AuthKit middleware. Make sure it is running on all paths you are calling 'withAuth' from by updating your middleware config in 'middleware.(js|ts)'.`);
281
305
  }
282
306
  const authHeader = headersList.get(sessionHeaderName);
283
307
  if (!authHeader)
@@ -297,5 +321,5 @@ function getScreenHint(signUpPaths, pathname) {
297
321
  });
298
322
  return screenHintPaths.length > 0 ? 'sign-up' : 'sign-in';
299
323
  }
300
- export { encryptSession, withAuth, refreshSession, terminateSession, updateSession, getSession };
324
+ export { encryptSession, withAuth, refreshSession, terminateSession, updateSessionMiddleware, updateSession };
301
325
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
@@ -5,3 +5,9 @@
5
5
  */
6
6
  export declare const checkSessionAction: () => Promise<boolean>;
7
7
  export declare const handleSignOutAction: () => Promise<void>;
8
+ export declare const getOrganizationAction: (organizationId: string) => Promise<import("@workos-inc/node").Organization>;
9
+ export declare const getAuthAction: (ensureSignedIn?: boolean) => Promise<import("./interfaces.js").UserInfo | import("./interfaces.js").NoUserInfo>;
10
+ export declare const refreshAuthAction: ({ ensureSignedIn, organizationId, }: {
11
+ ensureSignedIn?: boolean | undefined;
12
+ organizationId?: string | undefined;
13
+ }) => Promise<import("./interfaces.js").UserInfo | import("./interfaces.js").NoUserInfo>;
@@ -0,0 +1,33 @@
1
+ import React, { ReactNode } from 'react';
2
+ import type { Impersonator, User } from '@workos-inc/node';
3
+ type AuthContextType = {
4
+ user: User | null;
5
+ sessionId: string | undefined;
6
+ organizationId: string | undefined;
7
+ role: string | undefined;
8
+ permissions: string[] | undefined;
9
+ entitlements: string[] | undefined;
10
+ impersonator: Impersonator | undefined;
11
+ accessToken: string | undefined;
12
+ loading: boolean;
13
+ getAuth: (options?: {
14
+ ensureSignedIn?: boolean;
15
+ }) => Promise<void>;
16
+ refreshAuth: (options?: {
17
+ ensureSignedIn?: boolean;
18
+ organizationId?: string;
19
+ }) => Promise<void | {
20
+ error: string;
21
+ }>;
22
+ };
23
+ interface AuthKitProviderProps {
24
+ children: ReactNode;
25
+ /**
26
+ * Customize what happens when a session is expired. By default,the entire page will be reloaded.
27
+ * You can also pass this as `false` to disable the expired session checks.
28
+ */
29
+ onSessionExpired?: false | (() => void);
30
+ }
31
+ export declare const AuthKitProvider: ({ children, onSessionExpired }: AuthKitProviderProps) => React.JSX.Element;
32
+ export declare function useAuth(): AuthContextType;
33
+ export {};
@@ -2,5 +2,5 @@ import * as React from 'react';
2
2
  interface ImpersonationProps extends React.ComponentPropsWithoutRef<'div'> {
3
3
  side?: 'top' | 'bottom';
4
4
  }
5
- export declare function Impersonation({ side, ...props }: ImpersonationProps): Promise<React.JSX.Element | null>;
5
+ export declare function Impersonation({ side, ...props }: ImpersonationProps): React.JSX.Element | null;
6
6
  export {};
@@ -0,0 +1,3 @@
1
+ import { Impersonation } from './impersonation.js';
2
+ import { AuthKitProvider, useAuth } from './authkit-provider.js';
3
+ export { Impersonation, AuthKitProvider, useAuth };
@@ -1,2 +1,6 @@
1
1
  import { CookieOptions } from './interfaces.js';
2
+ export declare function getCookieOptions(): CookieOptions;
2
3
  export declare function getCookieOptions(redirectUri?: string | null): CookieOptions;
4
+ export declare function getCookieOptions(redirectUri: string | null | undefined, asString: true, expired?: boolean): string;
5
+ export declare function getCookieOptions(redirectUri: string | null | undefined, asString: false, expired?: boolean): CookieOptions;
6
+ export declare function getCookieOptions(redirectUri?: string | null, asString?: boolean, expired?: boolean): CookieOptions | string;
@@ -1,11 +1,11 @@
1
1
  declare const WORKOS_API_HOSTNAME: string | undefined;
2
2
  declare const WORKOS_API_HTTPS: string | undefined;
3
- declare const WORKOS_API_KEY: string;
4
3
  declare const WORKOS_API_PORT: string | undefined;
5
- declare const WORKOS_CLIENT_ID: string;
6
4
  declare const WORKOS_COOKIE_DOMAIN: string | undefined;
7
5
  declare const WORKOS_COOKIE_MAX_AGE: string | undefined;
8
6
  declare const WORKOS_COOKIE_NAME: string | undefined;
7
+ declare const WORKOS_API_KEY: string;
8
+ declare const WORKOS_CLIENT_ID: string;
9
9
  declare const WORKOS_COOKIE_PASSWORD: string;
10
10
  declare const WORKOS_REDIRECT_URI: string;
11
11
  export { WORKOS_API_HOSTNAME, WORKOS_API_HTTPS, WORKOS_API_KEY, WORKOS_API_PORT, WORKOS_CLIENT_ID, WORKOS_COOKIE_DOMAIN, WORKOS_COOKIE_MAX_AGE, WORKOS_COOKIE_NAME, WORKOS_COOKIE_PASSWORD, WORKOS_REDIRECT_URI, };
@@ -1,7 +1,5 @@
1
1
  import { handleAuth } from './authkit-callback-route.js';
2
- import { authkitMiddleware } from './middleware.js';
3
- import { withAuth, refreshSession, getSession } from './session.js';
2
+ import { authkit, authkitMiddleware } from './middleware.js';
3
+ import { withAuth, refreshSession } from './session.js';
4
4
  import { getSignInUrl, getSignUpUrl, signOut } from './auth.js';
5
- import { Impersonation } from './impersonation.js';
6
- import { AuthKitProvider } from './authkit-provider.js';
7
- export { handleAuth, authkitMiddleware, getSession, getSignInUrl, getSignUpUrl, withAuth, refreshSession, signOut, Impersonation, AuthKitProvider, };
5
+ export { handleAuth, authkitMiddleware, authkit, getSignInUrl, getSignUpUrl, withAuth, refreshSession, signOut, };
@@ -33,6 +33,7 @@ export interface NoUserInfo {
33
33
  organizationId?: undefined;
34
34
  role?: undefined;
35
35
  permissions?: undefined;
36
+ entitlements?: undefined;
36
37
  impersonator?: undefined;
37
38
  accessToken?: undefined;
38
39
  }
@@ -59,6 +60,16 @@ export interface AuthkitMiddlewareOptions {
59
60
  redirectUri?: string;
60
61
  signUpPaths?: string[];
61
62
  }
63
+ export interface AuthkitOptions {
64
+ debug?: boolean;
65
+ redirectUri?: string;
66
+ screenHint?: 'sign-up' | 'sign-in';
67
+ }
68
+ export interface AuthkitResponse {
69
+ session: UserInfo | NoUserInfo;
70
+ headers: Headers;
71
+ authorizationUrl?: string;
72
+ }
62
73
  export interface CookieOptions {
63
74
  path: '/';
64
75
  httpOnly: true;
@@ -1,3 +1,4 @@
1
- import { NextMiddleware } from 'next/server';
2
- import { AuthkitMiddlewareOptions } from './interfaces.js';
1
+ import { NextMiddleware, NextRequest } from 'next/server';
2
+ import { AuthkitMiddlewareOptions, AuthkitOptions, AuthkitResponse } from './interfaces.js';
3
3
  export declare function authkitMiddleware({ debug, middlewareAuth, redirectUri, signUpPaths, }?: AuthkitMiddlewareOptions): NextMiddleware;
4
+ export declare function authkit(request: NextRequest, options?: AuthkitOptions): Promise<AuthkitResponse>;
@@ -1,7 +1,8 @@
1
- import { NextRequest, NextResponse } from 'next/server';
2
- import { AuthkitMiddlewareAuth, NoUserInfo, Session, UserInfo } from './interfaces.js';
1
+ import { NextRequest } from 'next/server';
2
+ import { AuthkitMiddlewareAuth, AuthkitOptions, AuthkitResponse, NoUserInfo, Session, UserInfo } from './interfaces.js';
3
3
  declare function encryptSession(session: Session): Promise<string>;
4
- declare function updateSession(request: NextRequest, debug: boolean, middlewareAuth: AuthkitMiddlewareAuth, redirectUri: string, signUpPaths: string[]): Promise<Response>;
4
+ declare function updateSessionMiddleware(request: NextRequest, debug: boolean, middlewareAuth: AuthkitMiddlewareAuth, redirectUri: string, signUpPaths: string[]): Promise<Response>;
5
+ declare function updateSession(request: NextRequest, options?: AuthkitOptions): Promise<AuthkitResponse>;
5
6
  declare function refreshSession(options: {
6
7
  organizationId?: string;
7
8
  ensureSignedIn?: boolean;
@@ -13,28 +14,4 @@ declare function withAuth(options: {
13
14
  ensureSignedIn: true;
14
15
  }): Promise<UserInfo>;
15
16
  declare function terminateSession(): Promise<void>;
16
- /**
17
- * Retrieves the session from the cookie. Meant for use in the middleware, for client side use `withAuth` instead.
18
- *
19
- * @returns UserInfo | NoUserInfo
20
- */
21
- declare function getSession(response?: NextResponse): Promise<{
22
- user: null;
23
- sessionId?: undefined;
24
- organizationId?: undefined;
25
- role?: undefined;
26
- permissions?: undefined;
27
- entitlements?: undefined;
28
- impersonator?: undefined;
29
- accessToken?: undefined;
30
- } | {
31
- sessionId: string;
32
- user: import("@workos-inc/node").User;
33
- organizationId: string | undefined;
34
- role: string | undefined;
35
- permissions: string[] | undefined;
36
- entitlements: string[] | undefined;
37
- impersonator: import("./interfaces.js").Impersonator | undefined;
38
- accessToken: string;
39
- } | undefined>;
40
- export { encryptSession, withAuth, refreshSession, terminateSession, updateSession, getSession };
17
+ export { encryptSession, withAuth, refreshSession, terminateSession, updateSessionMiddleware, updateSession };
@@ -1,4 +1,4 @@
1
- export declare function redirectWithFallback(redirectUri: string): Response;
1
+ export declare function redirectWithFallback(redirectUri: string, headers?: Headers): Response;
2
2
  export declare function errorResponseWithFallback(errorBody: {
3
3
  error: {
4
4
  message: string;
@@ -1,4 +1,4 @@
1
1
  import { WorkOS } from '@workos-inc/node';
2
- export declare const VERSION = "0.17.2";
2
+ export declare const VERSION = "1.0.1";
3
3
  declare const workos: WorkOS;
4
4
  export { workos };
package/dist/esm/utils.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import { NextResponse } from 'next/server';
2
- export function redirectWithFallback(redirectUri) {
2
+ export function redirectWithFallback(redirectUri, headers) {
3
+ const newHeaders = headers ? new Headers(headers) : new Headers();
4
+ newHeaders.set('Location', redirectUri);
3
5
  // Fall back to standard Response if NextResponse is not available.
4
6
  // This is to support Next.js 13.
5
7
  return (NextResponse === null || NextResponse === void 0 ? void 0 : NextResponse.redirect)
6
- ? NextResponse.redirect(redirectUri)
7
- : new Response(null, { status: 307, headers: { Location: redirectUri } });
8
+ ? NextResponse.redirect(redirectUri, { headers })
9
+ : new Response(null, { status: 307, headers: newHeaders });
8
10
  }
9
11
  export function errorResponseWithFallback(errorBody) {
10
12
  // Fall back to standard Response if NextResponse is not available.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,oBAAoB,CAAC,WAAmB;IACtD,mEAAmE;IACnE,iCAAiC;IACjC,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ;QAC3B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;QACpC,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,SAA8D;IACtG,mEAAmE;IACnE,iCAAiC;IACjC,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;QACvB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC/C,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACtC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,UAAU,oBAAoB,CAAC,WAAmB,EAAE,OAAiB;IACzE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IAClE,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAExC,mEAAmE;IACnE,iCAAiC;IACjC,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ;QAC3B,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;QACjD,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,SAA8D;IACtG,mEAAmE;IACnE,iCAAiC;IACjC,OAAO,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,IAAI;QACvB,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QAC/C,CAAC,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;YACtC,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;SAChD,CAAC,CAAC;AACT,CAAC"}
@@ -1,6 +1,6 @@
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
- export const VERSION = '0.17.2';
3
+ export const VERSION = '1.0.1';
4
4
  const options = {
5
5
  apiHostname: WORKOS_API_HOSTNAME,
6
6
  https: WORKOS_API_HTTPS ? WORKOS_API_HTTPS === 'true' : true,
@@ -1 +1 @@
1
- {"version":3,"file":"workos.js","sourceRoot":"","sources":["../../src/workos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE5G,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC;AAEhC,MAAM,OAAO,GAAG;IACd,WAAW,EAAE,mBAAmB;IAChC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI;IAC5D,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;IAC7D,OAAO,EAAE;QACP,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB;CACF,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"workos.js","sourceRoot":"","sources":["../../src/workos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE5G,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,MAAM,OAAO,GAAG;IACd,WAAW,EAAE,mBAAmB;IAChC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI;IAC5D,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS;IAC7D,OAAO,EAAE;QACP,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,OAAO;KACjB;CACF,CAAC;AAEF,+BAA+B;AAC/B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@workos-inc/authkit-nextjs",
3
- "version": "0.17.2",
3
+ "version": "1.0.1",
4
4
  "description": "Authentication and session helpers for using WorkOS & AuthKit with Next.js",
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -12,6 +12,16 @@
12
12
  "LICENSE",
13
13
  "README.md"
14
14
  ],
15
+ "exports": {
16
+ "./components": {
17
+ "types": "./dist/esm/types/components/index.d.ts",
18
+ "import": "./dist/esm/components/index.js"
19
+ },
20
+ ".": {
21
+ "types": "./dist/esm/types/index.d.ts",
22
+ "import": "./dist/esm/index.js"
23
+ }
24
+ },
15
25
  "scripts": {
16
26
  "clean": "rm -rf dist",
17
27
  "prebuild": "npm run clean",
package/src/actions.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  'use server';
2
2
 
3
3
  import { signOut } from './auth.js';
4
+ import { refreshSession, withAuth } from './session.js';
5
+ import { workos } from './workos.js';
4
6
 
5
7
  /**
6
8
  * This action is only accessible to authenticated users,
@@ -14,3 +16,21 @@ export const checkSessionAction = async () => {
14
16
  export const handleSignOutAction = async () => {
15
17
  await signOut();
16
18
  };
19
+
20
+ export const getOrganizationAction = async (organizationId: string) => {
21
+ return await workos.organizations.getOrganization(organizationId);
22
+ };
23
+
24
+ export const getAuthAction = async (ensureSignedIn?: boolean) => {
25
+ return await withAuth({ ensureSignedIn: ensureSignedIn as false });
26
+ };
27
+
28
+ export const refreshAuthAction = async ({
29
+ ensureSignedIn,
30
+ organizationId,
31
+ }: {
32
+ ensureSignedIn?: boolean;
33
+ organizationId?: string;
34
+ }) => {
35
+ return await refreshSession({ ensureSignedIn, organizationId });
36
+ };