用途:在 Expo / React Native 项目中实现 Clerk 认证。技能内置 Provider、令牌缓存与认证流程等稳定模式;组件属性与 Hook 签名等易变接口需查阅已安装的 @clerk/expo 源码确认。
触发条件:请求为 Expo/RN 应用添加认证,或提到 @clerk/expo、ClerkProvider、Expo Router 认证、原生应用中的 Clerk Hook;项目本身为 Expo/RN(存在 app.json、expo 依赖、metro.config.js、@clerk/expo)。原生 iOS/Swift、原生 Android/Kotlin、Web 框架项目应改用对应技能。
主要能力:默认路径为预置原生组件(@clerk/expo/native 的 AuthView + UserButton),适用于 Expo Go、Web 或需自定义 UI 时改用自定义流程;支持手机验证码、邮箱验证码、免密、社交登录与 SSO、MFA/2FA/TOTP、忘记密码、受保护路由、用户资料、组织切换、推送通知、退出登录、调用后端、生物识别与 passkeys 等。
使用方式:按 setup 参考安装、写入 EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY、配置 Provider 与 tokenCache、配置插件与构建类型;默认合并登录/注册流程;注册页需渲染 <View nativeID="clerk-captcha" />;完成真实登录并验证重启后会话保持。自定义流程使用 useSignIn()/useSignUp() 的方法式 API;SSO 使用 useSSO(),不用已废弃的 useOAuth()。令牌缓存使用 @clerk/expo/token-cache,资源缓存改用 resourceCache。
限制与注意事项:原生组件与原生 Hook 需要开发构建(npx expo run:ios / run:android),在 Expo Go 与 Web 上不可用;使用前需在 Clerk 控制台启用 Native API,并确认短信、邮箱、社交等因子已开启;本技能验证于 @clerk/expo 3.6.x,React Native 最低 0.75,peer 范围 expo >=53 <57,新版本需重新核对文档或已安装的 .d.ts;不要混用预置组件与自定义流程处理同一步认证。具体收费、价格等资料暂未提供。