Skip to content

Commit ca71a4f

Browse files
feat(auth-next-client,auth-next-server): add default auth with auto-detection
Implement default authentication for auth-next-client/server packages to provide zero-config setup for developers. auth-next-server changes: - Add createDefaultAuthConfig() function with optional configuration - Auto-detect clientId based on environment (sandbox vs production) - Auto-derive redirectUri from window.location.origin + '/callback' - Export default client IDs and constants for consumer use - Uses public Immutable client IDs for development convenience auth-next-client changes: - Update useLogin hook to accept optional config (all fields) - Update useLogout hook to accept optional config - Add helper functions to create complete configs with defaults - Auto-detect clientId, redirectUri, popupRedirectUri, logoutRedirectUri - Export default constants for direct consumer use This enables minimal setup: // Server (lib/auth.ts) export const { handlers, auth } = NextAuth(createDefaultAuthConfig()); // Client const { loginWithPopup } = useLogin(); await loginWithPopup(); // No config needed! const { logout } = useLogout(); await logout(); // No config needed! Consumers can still override any field as needed for production use. Related to wallet package default auth implementation (PR #2768). Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent ec905d5 commit ca71a4f

6 files changed

Lines changed: 363 additions & 31 deletions

File tree

packages/auth-next-client/src/constants.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,17 @@ export const DEFAULT_TOKEN_EXPIRY_MS = DEFAULT_TOKEN_EXPIRY_SECONDS * 1000;
4343
* Matches TOKEN_EXPIRY_BUFFER_SECONDS (60s) in @imtbl/auth-next-server.
4444
*/
4545
export const TOKEN_EXPIRY_BUFFER_MS = 60 * 1000;
46+
47+
/**
48+
* Default Client IDs for auto-detection
49+
* These are public client IDs for Immutable's default applications
50+
*/
51+
export const DEFAULT_PRODUCTION_CLIENT_ID = 'PtQRK4iRJ8GkXjiz6xfImMAYhPhW0cYk';
52+
export const DEFAULT_SANDBOX_CLIENT_ID = 'mjtCL8mt06BtbxSkp2vbrYStKWnXVZfo';
53+
54+
/**
55+
* Default redirect URI paths
56+
*/
57+
export const DEFAULT_REDIRECT_URI_PATH = '/callback';
58+
export const DEFAULT_POPUP_REDIRECT_URI_PATH = '/callback/popup';
59+
export const DEFAULT_LOGOUT_REDIRECT_URI_PATH = '/';

0 commit comments

Comments
 (0)