要件
Auth0.Android library を介して Lock の UI または独自の UI を使用するには、Android API レベル 21 以上、Java バージョン 8 以上が必要です。また、“Native” タイプの Auth0 アプリケーションも必要です。 Android プラグインと Kotlin プラグインでそれぞれ Java 8 のバイトコードをターゲットにするためにbuild.gradle に必要な設定は次のとおりです。
インストール
Lock は Maven Central で利用できます。Lock を使い始めるには、build.gradle の dependencies に次の行を追加します。
implementation 'com.auth0.android:lock:3.+'
最新バージョンは、リポジトリの Readme または Maven で確認できます。
Gradle の依存関係を追加したら、プロジェクトを Gradle ファイルと同期することを忘れないでください。
Auth0 Dashboard の設定
開始する前に、Auth0 Dashboard でいくつかの設定を行う必要があります。コールバック URL
に移動し、アプリケーションの設定を開きます。次の URL をアプリケーションの Allowed Callback URLs に追加します。https://{yourDomain}/android/{yourAppPackageName}/callback
app/build.gradle ファイルの applicationId の値として指定されている、実際のアプリケーションのパッケージ名に {yourAppPackageName} を置き換えてください。
キーストアとキーハッシュ
Androidアプリケーションは、デバイスにインストールする前に署名する必要があります。そのため、Android Studio IDE は初回起動時に、開発ビルドの署名に使用するデフォルトの「Android Debug Keystore」を生成します。このキーストアは、開発者としての識別に使われるため、本番ビルドで使用するものとは異なる場合があります。 Web Authentication 機能 (つまり、ソーシャル接続) を使用する場合、Lock はデフォルトで Android App Links の使用を試みるように設定されます。そのため、Auth0アプリケーションのダッシュボードで追加の設定が必要です。この手順を完了するには、Android Keystores and Key Hashes Guideを参照してください。Lock の実装 (Social, Database, Enterprise)
以下では、Android 向け Classic Lock の実装方法について説明します。Android 向けの Lock の実装については、Lock.Android: Passwordless を参照してください。SDK の設定
app/build.gradle ファイルに、Auth0 Domain と Auth0 Scheme のプロパティ用の Manifest Placeholders を追加します。これらは、認証結果を受け取る intent-filter を登録するために、library 内部で使用されます。
strings.xml ファイルに追加しておくのが一般的です。このガイドでも、その方法に従います。
SDK の使用
Lock を呼び出す Activity で、アプリケーションの情報を使ってAuth0 のインスタンスを作成します。最も簡単なのは、Android のコンテキストを渡して作成する方法です。これにより、あらかじめ strings.xml ファイルで定義した値が使用されます。これを機能させるには、文字列リソースを上記の一覧と同じキー名で定義する必要があります。
AuthenticationCallback 実装を定義します。認証が成功した場合に返される Credentials オブジェクトには、最終的にアプリケーションまたは API が使用するトークンが含まれます。詳細は、トークン を参照してください。
onDestroy メソッドです。
Lock ウィジェットを起動します。
Android App Links - カスタムスキーム
この記事および Lock のデフォルトで使用されるコールバック URI スキームはhttps です。Android App Links を使用している場合、これは Android Marshmallow (API 23) 以降で最も適切に動作しますが、それ以前の Android バージョンでは、インテントの処理先としてアプリケーションとブラウザーのどちらを使うかをユーザーに選択させるインテントチューザー ダイアログが表示されることがあります。これは「曖昧性解消ダイアログ」と呼ばれます。OS がリンクを直接アプリで開くようにするには、一意のカスタムスキームを使用してこの動作を変更できます。
app/build.gradleファイル内のauth0SchemeManifest Placeholder の値、またはAndroidManifest.xmlファイル内の Intent Filter 定義を直接更新し、既存のスキームを新しいものに変更します。- Auth0 Dashboard のアプリケーションの設定にある “Allowed Callback URLs” を、新しいスキームで始まる URL と一致するように更新します。
- ビルダーで Lock を設定する際に
withScheme()を呼び出し、使用するスキームを渡します。
スキームの値は、すべて小文字である必要があります。そうでない場合は警告メッセージがログに記録され、authentication は完了しません。
Lock の設定
Lock の設定オプションの一覧については、Lock.Android: 設定をご覧ください。エラーメッセージ
コールバックでAuthenticationException を受け取った場合は、各エラーケースの見分け方について ソース を確認してください。