メインコンテンツへスキップ
1

Auth0を構成する

Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、プロジェクトに認証を構成する場所です。

アプリケーションを構成する

対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。代わりに完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。

Callback URLを構成する

Callback URLとは、Auth0によって認証後のユーザーをダイレクトするアプリケーションURLです。この値を設定していない場合、ユーザーはログイン後にアプリケーションに戻りません。
サンプルプロジェクトに沿って進めている場合は、demo://{yourDomain}/android/YOUR_APP_PACKAGE_NAME/callbackに設定してください。

ログアウトURLを構成する

ログアウトURLとは、Auth0によってログアウト後のユーザーをリダイレクトするアプリケーションURLです。この値を設定していない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。
サンプルプロジェクトに沿って進めている場合は、demo://{yourDomain}/android/YOUR_APP_PACKAGE_NAME/callbackに設定してください。
2

Auth0 Android SDKをインストールする

Auth0 Android SDKをプロジェクトに追加します。ライブラリーはAuth0のAuthentication APIとManagement APIに要求を行います。アプリのbuild.gradle依存関係セクションで、以下を追加します。
implementation 'com.auth0.android:auth0:2. '
AndroidとKotlinのプラグインのそれぞれに対して、Java 8+バイトコードをターゲットにするようにします。
3

マニフェストのプレースホルダーを追加する

SDKにはマニフェストのプレースホルダーが必要です。Auth0は内部でプレースホルダーを使用して、認証のCallback URLを捉えるintent-filterを定義します。Auth0テナントのドメインとCallback URLスキームを設定する必要があります。アクティビティーに特別なintent-filterを宣言する必要はありません。これは、マニフェストのプレースホルダーをAuth0ドメインスキーム の値で定義したため、ライブラリーがリダイレクトを処理します。
ここでは、auth0Schemedemoの値を使用したため、カスタムURLスキームをログイン後にAuth0がリダイレクトするURLに使用することができます。Androidアプリのリンクを使用したい場合は、httpsを使用する方法もあります。この値の設定に関する詳細情報は、Auth0.Android SDKのREADMEをお読みください。
4

アプリケーションを構成する

SDKが正しく機能するためには、次のプロパティをstrings.xmlで設定しなければなりません:
  • com_auth0_domain:Auth0テナントのドメインです。通常、Auth0 Dashboardにあるアプリケーションの[Settings(設定)]の[Domain(ドメイン)]フィールドで確認できます。カスタムドメインを使用している場合は、その値を代わりに設定してください。
  • com_auth0_client_id:このクイックスタートで前にセットアップしたAuth0アプリケーションのIDです。Auth0 Dashboardにあるアプリケーションの[Settings(設定)]の[Client ID(クライアントID)]フィールドで確認できます。
AndroidManifest.xmlファイルがandroid.permissions.INTERNETのアクセス許可を指定していることを確認します。
<uses-permission android:name="android.permission.INTERNET" />
Android Studio内でSync Project with Gradle Files を実行するか、コマンドラインから./gradlew clean assembleDebugを実行します。
Gradleの使用に関する詳細は、Gradleの公式のドキュメンテーションを確認してください。
5

アプリケーションにログインを追加する

アプリケーションに認証をセットアップするには、ユニバーサルログインが最も手軽な方法です。最良のエクスペリエンス、高い安全性、幅広い機能を活用するためにも、ユニバーサルログインの使用をお勧めします。onCreateメソッドで、Auth0クラスの新しいインスタンスを作成し、ユーザー資格情報を保持します。loginWithBrowserメソッドを作成し、WebAuthProviderクラスを使用して、Auth0 Dashboardのアプリケーションで有効にした接続で認証します。ここでは、初期設定の一部としてauth0Schemeマニフェストのプレースホルダーで使用されたスキーム値を渡すことができます。WebAuthProvider#start関数を呼び出した後、ブラウザーが起動し、ログインページが表示されます。ユーザーが認証を行うと、Callback URLが呼び出されます。Callback URLには、認証プロセスの最終結果が含まれています。
チェックポイント
loginWithBrowserを呼び出すアプリケーションにボタンを追加します。このボタンをクリックすると、AndroidアプリケーションによってAuth0ユニバーサルログインページにリダイレクトされ、ユーザー名とパスワードまたはソーシャルプロバイダーを使ってログインまたはサインアップできるようになったことを確認します。 完了したら、Auth0がアプリにリダイレクトで戻すことを確認します。
6

アプリケーションにログアウトを追加する

WebAuthProviderを使用して、認証時にブラウザーで設定されたクッキーを削除すると、ユーザーは次回の認証試行時に、資格情報を再入力するよう求められます。logoutメソッドをアプリに追加してユーザーのセッションを削除し、アプリからログアウトします。ここでは、初期設定の一部としてauth0Schemeマニフェストのプレースホルダーで使用されたスキーム値を渡すことができます。WebAuthProviderクラスを使用して、ログアウトを実装します。この呼び出しによってブラウザーが開き、ユーザーはログアウトエンドポイントに移動されます。ユーザーがログアウトをキャンセルする場合は、ユーザーを前のURLにリダイレクトすることを検討してください。
チェックポイント
logoutを呼び出し、ユーザーをアプリケーションからログアウトするアプリにボタンを追加します。このボタンをクリックすると、Androidアプリがユーザーをログアウトページにリダイレクトしてからもう一度リダイレクトで戻すこと、そして、アプリケーションにログインしていないことを確認します。
7

ユーザープロファイル情報を表示する

AuthenticationAPIClientクラスを使用して、Auth0からユーザーのプロファイルを取得します。これには以下のものが必要です。
  • ログインフェーズから返されるアクセストークン
  • WebAuthProvider.loginprofileスコープが含まれる必要がある
ユーザーのメールアドレスを取得する必要がある場合は、emailスコープを指定する必要があります。
このクイックスタートで、上のログイン手順中にデフォルトでopenid profile emailスコープが設定されます。
以下に、ユーザーのプロファイルを取得して画面上に表示するために使用できる関数を示します。
チェックポイント
ログイン後にshowUserProfile関数を呼び出します。onSuccessコールバックがユーザーのプロファイル情報を返すことを確認します。

次のステップ

成功です!ここまで来れば、アプリケーションにログイン、ログアウト、ユーザープロファイル情報が備わっているはずです。これでクイックスタートチュートリアルは終了ですが、機能はまだまだたくさんあります。Auth0でできることについて詳しくは、以下をご覧ください。
  • Auth0 Dashboard - Auth0のテナントやアプリケーションを構成して管理する方法について説明します
  • Auth0.Android SDK - このチュートリアルで使用されているSDKをより詳しく説明します
  • Auth0 Marketplace - Auth0の機能性を拡張できる各種の統合を見つけられます
I