要件
build.gradle に必要な設定は次のとおりです。
インストール
build.gradle の dependencies に次の行を追加します。
implementation 'com.auth0.android:lock:3.+'
最新バージョンは、リポジトリの Readme または Maven で確認できます。
Gradle の依存関係を追加したら、プロジェクトを Gradle ファイルと同期することを忘れないでください。
Auth0 Dashboard の設定
コールバック URL
https://{yourDomain}/android/{yourAppPackageName}/callback
app/build.gradle ファイルの applicationId の値として指定されている、実際のアプリケーションのパッケージ名に {yourAppPackageName} を置き換えてください。
キーストアとキーハッシュ
SDK の設定
app/build.gradle ファイルに、Auth0 Domain と Auth0 Scheme のプロパティ用の Manifest Placeholders を追加します。これらは、認証結果を受け取る intent-filter を登録するために、library 内部で使用されます。
strings.xml ファイルに追加しておくのが一般的です。このガイドでも、その方法に従います。
SDK の使用
Auth0 のインスタンスを作成します。最も簡単なのは、Android のコンテキストを渡して作成する方法です。これにより、あらかじめ strings.xml ファイルで定義した値が使用されます。これを機能させるには、文字列リソースを上記の一覧と同じキー名で定義する必要があります。
AuthenticationCallback 実装を定義します。認証が成功した場合に返される Credentials オブジェクトには、最終的にアプリケーションまたは API が使用するトークンが含まれます。詳細は、トークン を参照してください。
onDestroy メソッドです。
Lock ウィジェットを起動します。
Android App Links - カスタムスキーム
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 の設定
エラーメッセージ
AuthenticationException を受け取った場合は、各エラーケースの見分け方について ソース を確認してください。