Skip to content

移动端认证配置(后端侧)

MysticX 移动应用(Expo)使用 Better Auth 的 Expo 集成对此 Next.js 后端进行身份验证。

已完成

  • @better-auth/expo 服务端插件已安装并添加到 lib/auth.tsx
  • trustedOrigins 已更新为 mysticx:// scheme 和开发环境 exp:// 模式
  • Google OAuth 已可用(使用相同的 client ID)
  • 邮箱/密码登录已可用
  • 已在 env.ts 中为 Apple 和 Facebook 添加可选环境变量(见下方)

待完成

Apple 登录

  1. 从 Apple Developer Portal 获取凭据(参见 mysticx-app/docs/mobile-auth-setup.md
  2. 添加到 .env
    APPLE_CLIENT_ID=com.mysticx.app.si
    APPLE_TEAM_ID=XXXXXXXXXX
    APPLE_KEY_ID=YYYYYYYYYY
    APPLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n...\n-----END PRIVATE KEY-----"
  3. 安装 josepnpm add jose
  4. lib/auth.tsx 中取消注释 Apple provider 并实现 generateAppleClientSecret()
  5. trustedOrigins 中取消注释 'https://appleid.apple.com'

Facebook 登录

  1. 从 Facebook Developer Portal 获取凭据(参见 mysticx-app/docs/mobile-auth-setup.md
  2. 添加到 .env
    FACEBOOK_CLIENT_ID=your_app_id
    FACEBOOK_CLIENT_SECRET=your_app_secret
  3. lib/auth.tsx 中取消注释 Facebook provider

Google(移动端特定)

  • 现有的 GOOGLE_CLIENT_ID 可用于验证来自移动应用的 idToken
  • 移动应用使用 @react-native-google-signin/google-signin 进行原生登录流程
  • 原生 SDK 获取 idToken,通过 signIn.social({ provider: 'google', idToken: { token } }) 发送到后端
  • 后端使用 Google 验证令牌并创建会话

Internal documentation for MysticX team