Androidアプリケーションにログインを追加する
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、プロジェクトに認証を構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。
このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。
代わりに完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。
Callback URLを構成する
Callback URLとは、Auth0によって認証後のユーザーをダイレクトするアプリケーションURLです。この値を設定していない場合、ユーザーはログイン後にアプリケーションに戻りません。
ログアウトURLを構成する
ログアウトURLとは、Auth0によってログアウト後のユーザーをリダイレクトするアプリケーションURLです。この値を設定していない場合、ユーザーはアプリケーションからログアウトできず、エラーを受け取ります。
Auth0 Android SDKをプロジェクトに追加します。ライブラリーはAuth0のAuthentication APIとManagement APIに要求を行います。
アプリのbuild.gradle
依存関係セクションで、以下を追加します。
implementation 'com.auth0.android:auth0:2. '
Was this helpful?
AndroidとKotlinのプラグインのそれぞれに対して、Java 8+バイトコードをターゲットにするようにします。
SDKにはマニフェストのプレースホルダーが必要です。Auth0は内部でプレースホルダーを使用して、認証のCallback URLを捉えるintent-filter
を定義します。Auth0テナントのドメインとCallback URLスキームを設定する必要があります。
アクティビティーに特別なintent-filter
を宣言する必要はありません。これは、マニフェストのプレースホルダーをAuth0ドメインとスキームの値で定義したため、ライブラリーがリダイレクトを処理します。
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" />
Was this helpful?
Android Studio内でSync Project with Gradle Filesを実行するか、コマンドラインから./gradlew clean assembleDebug
を実行します。
アプリケーションに認証をセットアップするには、ユニバーサルログインが最も手軽な方法です。最良のエクスペリエンス、高い安全性、幅広い機能を活用するためにも、ユニバーサルログインの使用をお勧めします。
onCreate
メソッドで、Auth0
クラスの新しいインスタンスを作成し、ユーザー資格情報を保持します。
loginWithBrowser
メソッドを作成し、WebAuthProvider
クラスを使用して、Auth0 Dashboardのアプリケーションで有効にした接続で認証します。ここでは、初期設定の一部としてauth0Scheme
マニフェストのプレースホルダーで使用されたスキーム値を渡すことができます。
WebAuthProvider#start
関数を呼び出した後、ブラウザーが起動し、ログインページが表示されます。ユーザーが認証を行うと、Callback URLが呼び出されます。Callback URLには、認証プロセスの最終結果が含まれています。
checkpoint.header
loginWithBrowser
を呼び出すアプリケーションにボタンを追加します。このボタンをクリックすると、AndroidアプリケーションによってAuth0ユニバーサルログインページにリダイレクトされ、ユーザー名とパスワードまたはソーシャルプロバイダーを使ってログインまたはサインアップできるようになったことを確認します。
完了したら、Auth0がアプリにリダイレクトで戻すことを確認します。
WebAuthProvider
を使用して、認証時にブラウザーで設定されたクッキーを削除すると、ユーザーは次回の認証試行時に、資格情報を再入力するよう求められます。
logout
メソッドをアプリに追加してユーザーのセッションを削除し、アプリからログアウトします。ここでは、初期設定の一部としてauth0Scheme
マニフェストのプレースホルダーで使用されたスキーム値を渡すことができます。
WebAuthProvider
クラスを使用して、ログアウトを実装します。この呼び出しによってブラウザーが開き、ユーザーはログアウトエンドポイントに移動されます。ユーザーがログアウトをキャンセルする場合は、ユーザーを前のURLにリダイレクトすることを検討してください。
checkpoint.header
logout
を呼び出し、ユーザーをアプリケーションからログアウトするアプリにボタンを追加します。このボタンをクリックすると、Androidアプリがユーザーをログアウトページにリダイレクトしてからもう一度リダイレクトで戻すこと、そして、アプリケーションにログインしていないことを確認します。
AuthenticationAPIClient
クラスを使用して、Auth0からユーザーのプロファイルを取得します。これには以下のものが必要です。
ログインフェーズから返されるアクセストークン
WebAuthProvider.login
にprofile
スコープが含まれる必要がある
ユーザーのメールアドレスを取得する必要がある場合は、email
スコープを指定する必要があります。
以下に、ユーザーのプロファイルを取得して画面上に表示するために使用できる関数を示します。
checkpoint.header
ログイン後にshowUserProfile
関数を呼び出します。onSuccess
コールバックがユーザーのプロファイル情報を返すことを確認します。
Next Steps
Excellent work! If you made it this far, you should now have login, logout, and user profile information running in your application.
This concludes our quickstart tutorial, but there is so much more to explore. To learn more about what you can do with Auth0, check out:
- Auth0 Dashboard - Learn how to configure and manage your Auth0 tenant and applications
- Auth0.Android SDK - Explore the SDK used in this tutorial more fully
- Auth0 Marketplace - Discover integrations you can enable to extend Auth0’s functionality
Sign up for an or to your existing account to integrate directly with your own tenant.