运行时依赖
安装命令
点击复制技能文档
Auth0 Swift 集成 Auth0.swift 是 Auth0 官方的 Apple 平台(iOS、macOS、tvOS、watchOS、visionOS)SDK。该技能为 Swift 应用添加了完整的本地身份验证,使用 Web Auth(系统浏览器重定向)、通过 CredentialsManager 的安全 Keychain 凭证存储以及可选的生物识别保护。
代理指令:在提供 SDK 设置说明之前,通过运行以下命令获取最新的发布版本: gh api repos/auth0/Auth0.swift/releases/latest --jq '.tag_name' 在所有依赖行中使用返回的版本,而不是任何硬编码版本。当前已知版本:2.18.0。
何时不使用: Android 应用:使用 auth0-android React Native 应用:使用 auth0-react-native Flutter 应用:使用原生 Flutter Auth0 SDK Web SPAs(React、Angular、Vue):使用 auth0-react、auth0-angular 或 auth0-vue Node.js/Express 服务器:使用 auth0-express
先决条件: iOS 14.0+ / macOS 11.0+ / tvOS 14.0+ / watchOS 7.0+ / visionOS 1.0+ Xcode 16.x Swift 6.0+ Auth0 账户 — 免费注册 Node.js 20+(用于自动化引导脚本) Auth0 CLI — brew install auth0/auth0-cli/auth0(用于引导脚本)
快速入门工作流 代理指令:按照以下步骤进行。如果您在任何步骤中遇到错误,请尝试最多 5 次修复,然后调用 AskUserQuestion 向用户寻求指导。始终先搜索现有代码 — 如果已经存在登录/注销处理程序,请将其挂接到现有代码中,而不是创建新的处理程序。
步骤 1 — 安装 SDK 代理指令:检查项目目录中是否存在现有的包管理文件: Podfile 存在 → CocoaPods Cartfile 存在 → Carthage Package.swift 存在 → Swift Package Manager 如果没有找到任何包管理文件,请通过 AskUserQuestion 询问用户:“您的项目使用哪种依赖管理器 — Swift Package Manager、CocoaPods 或 Carthage?”
Swift Package Manager — Package.swift 项目:在项目根目录中运行以下命令以自动添加依赖项,然后在 Package.swift 中将“Auth0”添加到目标的依赖项数组中: swift package add-dependency https://github.com/auth0/Auth0.swift --from 2.18.0
Swift Package Manager — Xcode 项目(.xcodeproj,无 Package.swift):CLI 命令不适用。请指导用户通过 Xcode 添加包:文件 → 添加包依赖项 → https://github.com/auth0/Auth0.swift → 跟随下一个主要版本从 2.18.0。
CocoaPods 或 Carthage:按照设置指南中的匹配安装步骤进行。不要仅显示说明 — 执行文件编辑和运行命令。
步骤 2 — 配置 Auth0 代理指令:如果 Auth0 凭证(域和客户端 ID)已经在用户的提示中: 直接使用这些值写入 Auth0.plist,然后继续到步骤 3。 如果没有提供凭证: 运行引导脚本 — 不要要求用户手动创建或配置 Auth0 应用。始终使用 CLI 路径。按照设置指南 — Auth0 配置进行预飞行检查和脚本命令。
步骤 3 — 配置回调 URL 代理指令:读取 Auth0.plist 以获取 ClientId 和 Domain。从 project.pbxproj 中提取包标识符:搜索 PRODUCT_BUNDLE_IDENTIFIER,跳过包含 $( 或 Tests 的值。通过 AskUserQuestion 询问用户:“您想使用哪种回调 URL 方案?” 自定义方案 ({bundle}://) — 更简单,适用于所有 Apple 平台 HTTPS 通用链接 — 推荐用于生产;防止 URL 方案被劫持 然后按照以下匹配路径进行。
路径 A — 自定义方案 代理指令:使用 Auth0 CLI 注册回调 URL(用真实值替换 CLIENT_ID、BUNDLE_ID、DOMAIN): auth0 apps update CLIENT_ID \ --callbacks "BUNDLE_ID://DOMAIN/ios/BUNDLE_ID/callback" \ --logout-urls "BUNDLE_ID://DOMAIN/ios/BUNDLE_ID/callback" \ --no-input 然后按照设置指南中的 URL 方案注册步骤在 Xcode 中注册 $(PRODUCT_BUNDLE_IDENTIFIER) 作为 URL 类型。
路径 B — HTTPS 通用链接 代理指令:以下所有四个步骤都是必需的 — 跳过任何一个步骤都会导致回调重定向在登录后静默失败。
步骤 B1 — 通过 Auth0 CLI 注册回调 URL:注册 HTTPS 和自定义方案,以便应用在所有场景中都能正常工作: auth0 apps update CLIENT_ID \ --callbacks "https://DOMAIN/ios/BUNDLE_ID/callback,BUNDLE_ID://DOMAIN/ios/BUNDLE_ID/callback" \ --logout-urls "https://DOMAIN/ios/BUNDLE_ID/callback,BUNDLE_ID://DOMAIN/ios/BUNDLE_ID/callback" \ --no-input
步骤 B2 — 通过 Auth0 CLI 配置设备设置:从 project.pbxproj 中提取 DEVELOPMENT_TEAM(10 个字符的值,例如 ABC12DE34F)。如果没有找到,请通过 AskUserQuestion 询问用户:“您的 Apple 团队 ID 是什么?(developer.apple.com → 帐户 → 会员详细信息)” auth0 api patch applications/CLIENT_ID \ --data '{"mobile":{"ios":{"team_id":"TEAM_ID","app_bundle_identifier":"BUNDLE_ID"}}}' \ --no-input Auth0 现在将自动托管 https://DOMAIN/.well-known/apple-app-site-association — 这对于设备上的通用链接来说是必需的。
步骤 B3 — 添加关联域...