workos-authkit-react
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseWorkOS AuthKit for React (SPA)
适用于React(SPA)的WorkOS AuthKit
Decision Tree
决策树
START
│
├─► Fetch README (BLOCKING)
│ github.com/workos/authkit-react/blob/main/README.md
│ README is source of truth. Stop if fetch fails.
│
├─► Detect Build Tool
│ ├─ vite.config.ts exists? → Vite
│ └─ otherwise → Create React App
│
├─► Set Env Var Prefix
│ ├─ Vite → VITE_WORKOS_CLIENT_ID
│ └─ CRA → REACT_APP_WORKOS_CLIENT_ID
│
└─► Implement per READMESTART
│
├─► Fetch README (BLOCKING)
│ github.com/workos/authkit-react/blob/main/README.md
│ README is source of truth. Stop if fetch fails.
│
├─► Detect Build Tool
│ ├─ vite.config.ts exists? → Vite
│ └─ otherwise → Create React App
│
├─► Set Env Var Prefix
│ ├─ Vite → VITE_WORKOS_CLIENT_ID
│ └─ CRA → REACT_APP_WORKOS_CLIENT_ID
│
└─► Implement per READMECritical: Build Tool Detection
重点:构建工具检测
| Marker File | Build Tool | Env Prefix | Access Pattern |
|---|---|---|---|
| Vite | | |
| CRA | | |
Wrong prefix = undefined values at runtime. This is the #1 integration failure.
| 标记文件 | 构建工具 | 环境变量前缀 | 访问方式 |
|---|---|---|---|
| Vite | | |
| CRA | | |
前缀错误 = 运行时取值为undefined,这是集成失败的头号原因。
Key Clarification: No Callback Route
关键说明:无需回调路由
The React SDK handles OAuth callbacks internally via AuthKitProvider.
- No server-side callback route needed
- SDK intercepts redirect URI client-side
- Token exchange happens automatically
Just ensure redirect URI env var matches WorkOS Dashboard exactly.
React SDK通过AuthKitProvider内部处理OAuth回调。
- 无需服务端回调路由
- SDK会在客户端拦截重定向URI
- 自动完成令牌交换
只需确保重定向URI环境变量与WorkOS Dashboard中的配置完全一致即可。
Required Environment Variables
所需环境变量
{PREFIX}WORKOS_CLIENT_ID=client_...
{PREFIX}WORKOS_REDIRECT_URI=http://localhost:5173/callbackNo needed. Client-side only SDK.
WORKOS_API_KEY{PREFIX}WORKOS_CLIENT_ID=client_...
{PREFIX}WORKOS_REDIRECT_URI=http://localhost:5173/callback无需,这是仅客户端使用的SDK。
WORKOS_API_KEYVerification Checklist
验证检查清单
- README fetched and read
- Build tool detected correctly
- Env var prefix matches build tool
- or
.envhas required vars.env.local - No dependency (wrong skill)
next - No dependency (wrong skill)
react-router - AuthKitProvider wraps app root
- exits 0
pnpm build
- 已拉取并阅读README
- 构建工具检测正确
- 环境变量前缀与构建工具匹配
- 或
.env包含所需变量.env.local - 无依赖(否则不适用本方案)
next - 无依赖(否则不适用本方案)
react-router - AuthKitProvider包裹了应用根组件
- 执行退出码为0
pnpm build
Error Recovery
错误排查
"clientId is required"
"clientId is required"
Cause: Env var inaccessible (wrong prefix)
Check: Does prefix match build tool? Vite needs , CRA needs .
VITE_REACT_APP_原因: 环境变量无法访问(前缀错误)
检查:前缀是否与构建工具匹配?Vite需要前缀,CRA需要前缀。
VITE_REACT_APP_Auth state lost on refresh
刷新后认证状态丢失
Cause: Token persistence issue
Check: Browser dev tools → Application → Local Storage. SDK stores tokens here automatically.
原因: 令牌持久化异常
检查:浏览器开发者工具 → 应用 → 本地存储,SDK会自动将令牌存储在此处。
useAuth returns undefined
useAuth返回undefined
Cause: Component outside provider tree
Check: Entry file ( or ) wraps in .
main.tsxindex.tsx<App /><AuthKitProvider>原因: 组件在Provider树外部
检查:入口文件( 或 )是否将包裹在内部。
main.tsxindex.tsx<App /><AuthKitProvider>Callback redirect fails
回调重定向失败
Cause: URI mismatch
Check: Env var redirect URI exactly matches WorkOS Dashboard → Redirects configuration.
原因: URI不匹配
检查:环境变量中的重定向URI是否与WorkOS Dashboard → 重定向配置完全一致。