auth0-android
Androidアプリケーション(Kotlin/Java)にWebAuth、生体認証で保護された認証情報、およびMFAを使用して認証を追加する場合に使用します。com.auth0.android:auth0 SDKをネイティブAndroidアプリに統合し、セキュアな認証機能を実装できます。
description の原文を見る
Use when adding authentication to Android applications (Kotlin/Java) with Web Auth, biometric-protected credentials, and MFA - integrates com.auth0.android:auth0 SDK for native Android apps
SKILL.md 本文
Auth0 Android 統合
com.auth0.android:auth0 を使用して Android アプリケーションに認証を追加します。
エージェント指示: SDK セットアップ手順を提供する前に、次のコマンドを実行して最新リリースバージョンを取得してください:
gh api repos/auth0/Auth0.Android/releases/latest --jq '.tag_name'返されたバージョンを、以下のハードコードされたバージョンの代わりに、すべての
implementation依存関係行で使用します。コマンドが失敗した場合は、https://github.com/auth0/Auth0.Android/releases を確認することにフォールバックします。
前提条件
- Android API 21 以上
- Kotlin または Java プロジェクト
- ネイティブアプリケーションが設定された Auth0 アカウント
- Auth0 をまだセットアップしていない場合は、auth0-quickstart を参照してください
使用しない場合
- React Native アプリ: auth0-react-native を使用します
- Flutter アプリ: ネイティブ Flutter Auth0 SDK を使用します
- Web SPA (React、Angular、Vue): auth0-react、auth0-angular、または auth0-vue を使用します
- Node.js/Express サーバー: auth0-express を使用します
- iOS/macOS アプリ: auth0-swift を使用します
クイックスタートワークフロー
-
SDK をインストール: Auth0 Android SDK 依存関係を
build.gradleに追加します:implementation 'com.auth0.android:auth0:{LATEST_VERSION}' -
Auth0 を設定:
自動/手動セットアップ、セットアップ後に必要なプロジェクト変更、およびコールバック URL 設定については、セットアップガイド を参照してください。
-
初期化: Auth0 アカウントインスタンスを作成します:
import com.auth0.android.Auth0 val account = Auth0.getInstance(context) -
認証 UI を追加: Web Auth でログインとログアウトを実装します:
エージェント指示: 新しい UI 要素を追加する前に、ログイン、ログアウト、サインイン、またはサインアウトボタン (例:
loginButton、signInButton、logoutButton、signOutButton、または認証関連の命名を持つsetOnClickListener) の既存のクリックハンドラーをプロジェクトで検索します。既存のハンドラーが見つかった場合は、既存の UI を変更せずに Auth0 コードを統合します。既存のハンドラーが見つからない場合のみ、新しいボタンを作成します。ログイン:
import com.auth0.android.Auth0 import com.auth0.android.authentication.AuthenticationAPIClient import com.auth0.android.authentication.storage.SecureCredentialsManager import com.auth0.android.authentication.storage.SharedPreferencesStorage import com.auth0.android.callback.Callback import com.auth0.android.authentication.AuthenticationException import com.auth0.android.provider.WebAuthProvider import com.auth0.android.result.Credentials val account = Auth0.getInstance(context) val authentication = AuthenticationAPIClient(account) val storage = SharedPreferencesStorage(context) val credentialsManager = SecureCredentialsManager(context, authentication, storage) WebAuthProvider.login(account) .withScheme(getString(R.string.com_auth0_scheme)) .withScope("openid profile email offline_access") .start(this, object : Callback<Credentials, AuthenticationException> { override fun onSuccess(result: Credentials) { // User authenticated val idToken = result.idToken val accessToken = result.accessToken // Store credentials securely credentialsManager.saveCredentials(result) } override fun onFailure(error: AuthenticationException) { // Handle authentication failure Log.e("Auth0", "Authentication failed", error) } })ログアウト:
WebAuthProvider.logout(account) .withScheme(getString(R.string.com_auth0_scheme)) .start(this, object : Callback<Void?, AuthenticationException> { override fun onSuccess(result: Void) { // User logged out } override fun onFailure(error: AuthenticationException) { Log.e("Auth0", "Logout failed", error) } }) -
ビルドと検証:
エージェント指示: 統合を完了した後、プロジェクトをビルドして正常にコンパイルされることを確認します:
./gradlew assembleDebugビルドが失敗した場合は、エラー出力を分析して問題を修正します。一般的な統合ビルド失敗には以下が含まれます:
- 未解決の参照: インポートステートメントが不足しています — 必要な
import com.auth0.android.*インポートを追加してください - シンボル
R.string.com_auth0_schemeを解決できない:strings.xmlが更新されていません —com_auth0_scheme、com_auth0_client_id、com_auth0_domainエントリが存在することを確認してください - コールバックで互換性がない型: コールバック型パラメーターが一致しません — ログインで
Callback<Credentials, AuthenticationException>、ログアウトでCallback<Void?, AuthenticationException>を使用していることを確認してください - 未解決の
lifecycleScope: 依存関係が不足しています —implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.6.+'を追加するか、コードをコルーチンスコープの外に移動してください - minSdk が低すぎる: SDK には API 21 以上が必要です —
minSdkVersionを最低 21 に更新してください - Java バージョンの不一致: SDK には Java 8 が必要です —
compileOptionsをJavaVersion.VERSION_1_8で追加してください
各修正後にビルドを再実行します。ビルド修正の反復回数を追跡します。
フェイルチェック: 5~6 回の修正試行後もビルドが失敗し続ける場合は、停止して
AskUserQuestionを使用してユーザーに質問します: 「複数の修正試行後もビルドが失敗しています。どのように進めたいですか?」- スキルが引き続き反復的に修正を行うようにする — さらに 5~6 回の修正ループを続行します
- 手動で修正する — 残りのエラーを表示し、ユーザーに解決させます
- ビルド検証をスキップする — 成功したビルドなしに進めます
エラーが引き続き発生する場合は、5~6 回の反復後にこのチェックを繰り返します。ユーザーの明示的な同意なしに、プロジェクトをコンパイルできない状態のままにしないでください。
コールバック URL は Auth0 アプリケーション設定と一致する必要があります:
{SCHEME}://{YOUR_AUTH0_DOMAIN}/android/{YOUR_APP_PACKAGE_NAME}/callback - 未解決の参照: インポートステートメントが不足しています — 必要な
詳細ドキュメント
- セットアップガイド — SDK をインストール、Auth0 アプリケーションを設定、コールバック URL を設定、Android App Links、カスタムスキーム、ProGuard/R8
- 統合パターン — Web Auth ログイン/ログアウト、認証情報ストレージ、生体認証、データベースログイン、パスワードレス認証、MFA 処理、カスタムタブ、エラーハンドリング
- テストとリファレンス — テストチェックリスト、一般的な問題、セキュリティに関する考慮事項、API リファレンス
よくある間違い
| 間違い | 修正 |
|---|---|
| Auth0 ダッシュボードでアプリケーションタイプが Native に設定されていない | Auth0 テナントで Native アプリケーションタイプを作成します。Android SDK は Native アプリ設定が必要で、Machine-to-Machine その他のタイプは必要ありません。 |
| 許可されているコールバック URL にコールバック URL がない | {SCHEME}://{YOUR_AUTH0_DOMAIN}/android/{YOUR_APP_PACKAGE_NAME}/callback を Auth0 アプリケーションの許可されているコールバック URL 設定に追加します。{SCHEME} は strings.xml の com_auth0_scheme と一致する必要があります (デフォルトは demo)。 |
<uses-permission android:name="android.permission.INTERNET" /> がない | INTERNET パーミッションを AndroidManifest.xml に追加します。SDK は認証にネットワークアクセスが必要です。 |
| カスタムスキームが小文字でない | Android ではスキーム名を小文字にする必要があります。https (推奨) または myapp://callback のような小文字のカスタムスキームを使用します。 |
直接認証呼び出しで .validateClaims() を忘れている | AuthenticationAPIClient を直接使用する場合 (データベース、パスワードレス、API ログイン用)、常に .validateClaims() を呼び出します。Web Auth は自動的に検証します。 |
| 暗号化なしで SharedPreferences にトークンを保存している | SecureCredentialsManager を使用して認証情報を保存します。プレーンテキストでトークンを手動で保存しないでください。マネージャーは保存時にトークンを暗号化します。 |
| マニフェストプレースホルダーがない | manifestPlaceholders = [auth0Domain: "@string/com_auth0_domain", auth0Scheme: "@string/com_auth0_scheme"] を build.gradle の defaultConfig ブロックに追加します。 |
関連スキル
- auth0-quickstart — Auth0 アカウントとアプリケーションをセットアップ
- auth0-mfa — 多要素認証を設定
- auth0-swift — iOS/macOS 認証
クイックリファレンス
コアクラス
| クラス | 目的 |
|---|---|
Auth0 | SDK のエントリーポイント、アプリ認証情報を保持 |
WebAuthProvider | ブラウザ経由での OAuth 2.0 ログイン/ログアウト |
AuthenticationAPIClient | 直接 API 呼び出し (データベースログイン、パスワードレス、MFA) |
SecureCredentialsManager | 認証情報の安全なストレージと取得 |
Credentials | ユーザートークンと有効期限 |
よくあるユースケース
リファレンス
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- udbfd68-cell
- ライセンス
- MIT
- 最終更新
- 2026/5/3
Source: https://github.com/udbfd68-cell/AURION-APP / ライセンス: MIT