import { ClaudeWebAuth, LocalStorageTokenStorage } from '@vibe-kit/auth/browser';// OR use the default import which is browser-safe:// import { ClaudeAuth, LocalStorageTokenStorage } from '@vibe-kit/auth';// Create storageconst storage = new LocalStorageTokenStorage();const auth = new ClaudeWebAuth(storage);
// Create authorization URLconst { url, state, codeVerifier } = ClaudeWebAuth.createAuthorizationUrl();// Open URL in browser for user authenticationwindow.open(url, '_blank');// After user authorizes and provides the code#state string:const authCode = 'code123#state456'; // From user inputconst token = await auth.authenticate(authCode, codeVerifier, state);
import { ClaudeWebAuth, LocalStorageTokenStorage } from '@vibe-kit/auth/browser';const storage = new LocalStorageTokenStorage();const auth = new ClaudeWebAuth(storage);// Get token (assumes user is already authenticated)const accessToken = await auth.getValidToken();if (!accessToken) { // Handle authentication flow...}// Use with Claude Code CLI// First, export the token as an environment variable:// export CLAUDE_CODE_OAUTH_TOKEN=${accessToken}// claude -p 'Hello!'
CookieTokenStorage: Cookie-based storage for SSR applications
Copy
import { ClaudeWebAuth, LocalStorageTokenStorage, CookieTokenStorage } from '@vibe-kit/auth/browser';// Using localStorage (most common)const localAuth = new ClaudeWebAuth(new LocalStorageTokenStorage());// Using cookies (for SSR)const cookieAuth = new ClaudeWebAuth(new CookieTokenStorage());