はじめに
新しい Android プロジェクトを作成
このクイックスタート用に新しい Android プロジェクトを作成します。Android Studio で:
- File → New → New Project
- Phone and Tablet → Empty Activity テンプレートを選択します
- プロジェクトを次のように設定します:
- Name:
Auth0-Android-Sample - Package name:
com.auth0.samples.android - Language: Kotlin
- Minimum SDK: API 24 (Android 7.0)
- Build configuration language: Kotlin DSL
- Name:
- Finish をクリックします
Gradle を使って Auth0 ソフトウェア開発キット (SDK) を追加する
Gradle を使って、Auth0 Android ソフトウェア開発キット (SDK) をプロジェクトに追加します。アプリレベルの
build.gradle.kts ファイルを更新します:app/build.gradle.kts
AndroidManifest.xml にインターネット権限を追加する:app/src/main/AndroidManifest.xml
Auth0 アプリケーションのセットアップ
次に、Auth0 テナントに新しいアプリケーションを作成し、その設定を Android プロジェクトに追加します。まず、プレースホルダー値を使って 許可されたログアウトURL:
app/src/main/res/values/strings.xml ファイルを用意します。app/src/main/res/values/strings.xml
- Auth0 Dashboard にアクセスします
- Applications > Applications > Create Application をクリックします
- ポップアップでアプリ名を入力し、アプリ タイプとして
Nativeを選択して Create をクリックします - Application Details ページの Settings タブに切り替えます
strings.xmlファイル内の{yourDomain}とYOUR_AUTH0_CLIENT_IDを、ダッシュボードの Domain と Client ID の値に置き換えます
{yourDomain} を実際の Auth0 ドメイン(例: dev-abc123.us.auth0.com)に置き換えてください。許可されたコールバックURL は、認証後にユーザーを安全にアプリケーションへ戻すための重要なセキュリティ対策です。一致するURLがない場合、ログイン処理は失敗し、ユーザーはアプリにアクセスできず Auth0 のエラーページでブロックされます。許可されたログアウトURL は、サインアウト時にシームレスなユーザー体験を提供するために不可欠です。一致するURLがない場合、ユーザーはログアウト後にアプリケーションへリダイレクトされず、一般的な Auth0 ページに留まることになります。URLスキームには、コールバックが特定のアプリにルーティングされるように、パッケージ名(
com.auth0.samples.android)が含まれます。Auth0 ソフトウェア開発キット (SDK) の初期化
Auth0 と通信するために、Activity で Auth0 インスタンスを作成してください。
MainActivity.kt で:MainActivity.kt
ログイン/ログアウトを実装する
ログインを実装する: WebAuthProvider を使用して Universal Login ページを起動します。次のメソッドを ログアウトを実装する: WebAuthProvider を使用してユーザーのセッションをクリアします。
MainActivity に追加します:- Kotlin コールバック
- コルーチン
MainActivity.kt
- Kotlin コールバック
- コルーチン
MainActivity.kt
login() と logout() メソッドは、ユーザーが UI のそれぞれのボタンをタップしたときに呼び出す必要があります。コードでは、WebAuthProvider が Chrome Custom Tabs を起動し、認証フローを処理するために必要となるコンテキスト引数として this(Activity を参照)を使用しています。チェックポイントここまでの手順で、Android デバイスまたはエミュレーター上で Auth0 のログインエクスペリエンスが問題なく動作しているはずです。アプリでは安全な認証のために Chrome Custom Tabs を使用し、認証情報を自動的に保存します。
トラブルシューティング & 高度な設定
一般的な問題と解決策
一般的な問題と解決策
Chrome Custom Tab がアプリにリダイレクトされない
解決策:- Auth0 Dashboard で Allowed Callback URLs が
applicationIdと完全に一致していることを確認してください build.gradle.kts内のマニフェストプレースホルダーが正しいことを確認してください- HTTPS とカスタムスキームの両方の URL が構成されていることを確認してください
- クリーン & 再ビルド: Build → Clean Project → Rebuild Project
アプリがクラッシュする: ‘Auth0 domain not found’
対処方法:com_auth0_domainとcom_auth0_client_idの値が正しいことを確認してください- ドメイン形式にタイプミスがないことを確認してください(
https://を含めないでください)
依存関係に関連するビルドエラー
対処方法:build.gradle(プロジェクトレベル)で Android Gradle Plugin を最新バージョンに更新してください- プロジェクトを同期してください: File → Sync Project with Gradle Files
- クリーンビルドを実行してください:
./gradlew clean build
ユーザーによって認証がキャンセルされる
エラーコールバック内で適切に処理してください:互換性のあるブラウザがないというエラー
- デバイス/エミュレータに Chrome などの最新のブラウザをインストールしてください
- より良いユーザー体験のために Chrome Custom Tabs を有効にしてください
- Chrome がインストールされた実機デバイスでテストしてください
本番デプロイ
本番デプロイ
ストア公開前の準備
- シームレスな認証のために Android App Links を構成してください
- 複数の Android バージョンと画面サイズでテストしてください
- ネットワーク障害に対する適切なエラー処理を実装してください
- コード難読化を使用している場合は Auth0 ソフトウェア開発キット (SDK) 用の ProGuard ルールを追加してください
- 認証フローに関する Google Play Store のポリシーに従ってください
セキュリティ上の考慮事項
- 本番環境の認証情報ストレージには
SecureCredentialsManagerを使用してください - 追加の API セキュリティのために証明書ピンニングを実装してください
- 強化された認証情報保護のために Android Keystore の利用を検討してください
- 機微な操作には生体認証を有効にしてください