Skip to main content
Lock for Android は Android ネイティブアプリに組み込むことができ、アプリでユーザーのログインやサインアップをスマートに実現できます。Facebook、Google、X などのに加え、Active Directory などのエンタープライズプロバイダーにも対応しています。 GitHub の Lock.Android リポジトリ をご覧ください。

要件

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 が使用するトークンが含まれます。詳細は、トークン を参照してください。
Builder class を使って設定し、新しい Lock インスタンスを準備します。アカウントの詳細と、上で宣言したコールバックの実装を指定してください。、scope、使用可能な接続 などの値もここで設定できます。 設定が完了したら、Lock インスタンスをビルドします。このインスタンスは再利用することを前提としており、不要になったら破棄する必要があります。これを行うのに適した場所は、アクティビティの onDestroy メソッドです。
最後に、アクティビティ内で Lock ウィジェットを起動します。
これで完了です!あとはLockが処理してくれます。 この記事および Lock のデフォルトで使用されるコールバック URI スキームは https です。Android App Links を使用している場合、これは Android Marshmallow (API 23) 以降で最も適切に動作しますが、それ以前の Android バージョンでは、インテントの処理先としてアプリケーションとブラウザーのどちらを使うかをユーザーに選択させるインテントチューザー ダイアログが表示されることがあります。これは「曖昧性解消ダイアログ」と呼ばれます。OS がリンクを直接アプリで開くようにするには、一意のカスタムスキームを使用してこの動作を変更できます。
  1. app/build.gradle ファイル内の auth0Scheme Manifest Placeholder の値、または AndroidManifest.xml ファイル内の Intent Filter 定義を直接更新し、既存のスキームを新しいものに変更します。
  2. Auth0 Dashboard のアプリケーションの設定にある “Allowed Callback URLs” を、新しいスキームで始まる URL と一致するように更新します。
  3. ビルダーで Lock を設定する際に withScheme() を呼び出し、使用するスキームを渡します。
スキームの値は、すべて小文字である必要があります。そうでない場合は警告メッセージがログに記録され、authentication は完了しません。

Lock の設定

Lock の設定オプションの一覧については、Lock.Android: 設定をご覧ください。

エラーメッセージ

コールバックで AuthenticationException を受け取った場合は、各エラーケースの見分け方について ソース を確認してください。

詳しくはこちら