SKILL.md
readonlyread-only
name
clerk-android
description
在原生 Android 應用程式中使用 Kotlin 和 Jetpack Compose 實作 Clerk 認證,遵循 clerk-android 原始碼導向的模式。適用於預先建置的 AuthView/UserButton 或自訂 API 驅動的認證流程。不適用於 Expo 或 React Native 專案。
Clerk Android (原生)
此技能透過遵循目前的 clerk-android SDK 和文件模式,在原生 Android 專案中實作 Clerk。
啟用規則
當以下任一條件成立時啟用此技能:
- 使用者明確要求 Android、Kotlin、Jetpack Compose 或 Android 上的原生行動 Clerk 實作。
- 專案看起來是原生 Android(例如
build.gradle(.kts)包含 Android 外掛、AndroidManifest.xml、app/src/main/java、Compose UI 檔案)。
當以下任一條件成立時不要啟用此技能:
- 專案是 Expo。
- 專案是 React Native。
如果出現 Expo/React Native 的跡象,請改為導向一般設定技能。
你需要什麼?
| 任務 | 參考文件 |
|---|---|
| 預先建置的 AuthView / UserButton(最快) | references/prebuilt.md |
| 自訂 API 驅動的認證流程(完全控制) | references/custom.md |
快速開始
| 步驟 | 動作 |
|---|---|
| 1 | 確認專案類型是原生 Android,而非 Expo/React Native |
| 2 | 決定流程類型(prebuilt 或 custom)並載入對應的參考檔案 |
| 3 | 確保存在真實的 Clerk 可發布金鑰(或詢問開發者) |
| 4 | 確保為所選流程安裝正確的 Clerk 成品 |
| 5 | 閱讀官方 Android 快速入門並驗證必要的設定(Native API、最低 SDK/Java、manifest、初始化) |
| 6 | 檢查與所選流程相關的 clerk-android 原始碼/範例模式 |
| 7 | 僅遵循所選的參考檢查清單來實作流程 |
決策樹
使用者要求 Android/Kotlin 的 Clerk
|
+-- 偵測到 Expo/React Native 專案?
| |
| +-- 是 -> 不使用此技能
| |
| +-- 否 -> 繼續
|
+-- 偵測到現有認證 UI?
| |
| +-- 偵測到預先建置的視圖 -> 載入 references/prebuilt.md
| |
| +-- 偵測到自訂流程 -> 載入 references/custom.md
| |
| +-- 新的實作 -> 詢問開發者預先建置或自訂,然後載入對應的參考
|
+-- 確保可發布金鑰和 SDK 初始化路徑
|
+-- 確保安裝正確的 Android 成品
|
+-- 驗證專案中的快速入門先決條件
|
+-- 使用所選流程參考進行實作
流程參考
在確定流程類型後,僅載入一個:
- 預先建置流程:references/prebuilt.md
- 自訂流程:references/custom.md
除非開發者明確要求混合方法,否則不要在單一實作中混合使用兩個參考。
互動合約
在進行任何實作編輯之前,代理必須同時擁有:
- 流程選擇:
prebuilt或custom - 一個真實的 Clerk 可發布金鑰
如果使用者請求/情境中缺少任一值:
- 詢問使用者缺少的值
- 暫停並等待回答
- 不要編輯檔案或安裝相依性
僅當使用者在本次對話中已明確提供該值時,才可跳過詢問。
原始碼驅動的範本
不要在此技能中硬編碼實作範例。在實作之前,檢查目前安裝的 SDK 版本的 clerk-android 原始碼/文件。
| 使用案例 | 真相來源 |
|---|---|
SDK 成品和相依性拆分(clerk-android-api vs clerk-android-ui) |
clerk-android README 和 Android 安裝文件 |
| SDK 初始化和可發布金鑰連接 | Android 快速入門和 source/api/.../Clerk.kt |
| 預先建置的認證和個人資料行為 | source/ui/.../AuthView.kt、source/ui/.../UserButton.kt 和預先建置範例 |
| 自訂認證順序和因素處理 | source/ui/auth/*、source/api/auth/* 和自訂流程範例 |
| 從實例設定進行功能/特性開關 | Clerk 公開欄位(例如 enabledFirstFactorAttributes、socialProviders、isGoogleOneTapEnabled、mfaIsEnabled)和環境模型原始碼 |
| 必要的 Android 設定檢查清單 | 官方 Android 快速入門(/docs/android/getting-started/quickstart) |
執行閘門(不可跳過)
- 在滿足先決條件之前不進行實作編輯
- 在確認流程類型並取得有效的可發布金鑰之前,不要編輯專案檔案。
- 缺少流程或金鑰必須觸發問題
- 如果缺少流程選擇,明確詢問:預先建置視圖或自訂流程。
- 如果可發布金鑰缺失/為佔位符/無效,明確詢問真實金鑰。
- 在提供兩個答案之前不要繼續。
- 可發布金鑰連接模式是強制的
- 預設情況下,直接將開發者提供的金鑰連接到
Clerk.initialize(...)。 - 除非明確要求,否則不要引入秘密管理間接層。
- 成品安裝政策是強制的
- 預先建置流程:使用
clerk-android-ui(包含 API)。 - 自訂流程:使用
clerk-android-api,除非明確要求預先建置元件。 - 如果缺少 Clerk 成品,請新增可用的最新穩定版本。
- Android 快速入門合規性是強制的
- 確認 Clerk 應用程式已啟用 Native API。
- 確認專案中已實作快速入門中的 Android 需求(最低 SDK 和 Java 目標、manifest 網路權限、應用程式層級的 Clerk 初始化)。
- 確認應用程式在假設認證就緒狀態之前等待 SDK 初始化完成(
Clerk.isInitialized)。
- 功能驅動的行為是強制的
- 使用 Clerk 執行時期功能/設定狀態(例如啟用的因素/社交提供者/MFA 旗標)來控制流程行為。
- 不要硬編碼可能與儀表板設定衝突的因素假設。
- 參考檔案紀律是強制的
- 一旦選定流程,僅遵循該流程參考檔案進行實作和驗證。
- 自訂流程結構一致性是強制的
- 對於
custom流程,保留多步驟認證進度和特定因素處理(預設不使用單一全欄位表單)。 - 將 UI、狀態編排和 Clerk API 整合保持在單獨的模組中。
- 選定時偏好預先建置是強制的
- 對於
prebuilt流程,除非明確要求,否則不要使用自訂 API 呼叫重建認證表單。 - 預設使用
AuthView/UserButton作為建構區塊。
工作流程
- 偵測原生 Android 與 Expo/React Native。
- 如果未明確提供流程類型,詢問使用者
prebuilt或custom。 - 如果未明確提供可發布金鑰,詢問使用者。
- 在變更檔案之前等待兩個答案。
- 載入對應的流程參考檔案。
- 確保
Clerk.initialize(...)路徑和可發布金鑰連接有效。 - 確保相依性/成品與所選流程匹配。
- 檢視 Android 快速入門需求並在專案中套用缺少的設定。
- 使用所選參考檢查清單進行實作。
- 使用所選參考檢查清單加上共用閘門進行驗證。
常見陷阱
| 等級 | 問題 | 預防措施 |
|---|---|---|
| 嚴重 | 在實作前未詢問缺少的流程選擇 | 詢問 prebuilt 與 custom 並在編輯前等待 |
| 嚴重 | 在實作前未詢問缺少的可發布金鑰 | 詢問金鑰並在編輯前等待 |
| 嚴重 | 在確認流程類型前開始實作 | 先確認流程並載入對應參考 |
| 嚴重 | 跳過 Android 快速入門先決條件 | 從官方 Android 快速入門驗證並套用必要設定 |
| 嚴重 | 缺少應用程式層級的 Clerk.initialize(...) 呼叫 |
從 Application 啟動路徑初始化 Clerk |
| 高 | 所選流程的成品錯誤 | 預先建置:clerk-android-ui;自訂:clerk-android-api |
| 高 | 在 SDK 初始化完成前渲染認證 UI | 使用 Clerk.isInitialized 狀態控制 UI |
| 高 | 硬編碼認證因素/社交提供者 | 從 Clerk 執行時期功能欄位驅動行為 |
| 高 | 對 Expo/React Native 使用此技能 | 在實作前偵測並轉向 |
另請參閱
clerk技能用於頂層 Clerk 路由clerk-setup技能用於跨框架快速入門設定https://github.com/clerk/clerk-androidhttps://clerk.com/docs/android/getting-started/quickstart






