Expoアプリケーションにログインを追加する
このクイックスタートは、Expoフレームワーク用です。React NativeアプリケーションにAuth0を統合するには、「React Nativeクイックスタート」を参照してください。
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、プロジェクトに認証を構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。
このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。
完了済みの構成を見てみたい場合は、サンプルアプリケーションをご覧ください。
Callback URLとログアウトURLを構成する
Auth0はCallback URLとログアウトURLを呼び出して、ユーザーをアプリケーションにリダイレクトで戻します。Auth0は、ユーザーを認証した後にCallback URLを呼び出し、セッションのクッキーを削除した後にログアウトURLを呼び出します。Callback URLとログアウトURLを設定しないと、ユーザーはアプリにログインやログアウトが行えなくなり、アプリケーションにエラーが発生します。
アプリのプラットフォームに合わせて、対応するURLをCallback URLとログアウトURLに追加します。カスタムドメインを使っている場合は、Auth0テナントのドメインではなく、カスタムドメインの値を使用してください。
iOS
BUNDLE_IDENTIFIER.auth0://{yourDomain}/ios/BUNDLE_IDENTIFIER/callback
Android
PACKAGE_NAME.auth0://{yourDomain}/android/PACKAGE_NAME/callback
このセクションでは、React Native Auth0モジュールをインストールする方法について説明します。
Yarn
yarn add react-native-auth0
npm
npm install react-native-auth0 --save
Auth0パッケージはカスタムネイティブコードを実行し、これはビルド時に構成しておく必要があります。これを実現するには、Expo構成プラグインを使用します。
react-native-auth0プラグインがExpo構成に追加されます。
上記の構成を設定するには、ネイティブコードを生成する必要があります。これを行うには、次のコマンドを実行します:
expo prebuild
Expoの構成に存在しない場合には、AndroidパッケージとiOSバンドル識別子の提供が促されます。
? What would you like your Android package name to be? > com.auth0samples # or your desired package name
? What would you like your iOS bundle identifier to be? > com.auth0samples # or your desired bundle identifierWas this helpful?
これらの値は、Callback URLとログアウトURLの設定に使用されます。
useAuth0フックはReact Contextに依存して状態を管理します。このコンテキストはAuth0Providerコンポーネントが提供します。
react-native-auth0パッケージからuseAuth0フックとAuth0Providerコンポーネントをインポートします:
import {useAuth0, Auth0Provider} from 'react-native-auth0';Was this helpful?
SDKが正しく機能するためには、アプリケーションをAuth0Providerコンポーネントでラップし、次のプロパティを設定しなければなりません:
domain:Auth0テナントのドメインです。通常、Auth0 Dashboardにあるアプリケーションの設定の[Domain(ドメイン)]フィールドで確認できます。カスタムドメインを使用している場合には、この値をカスタムドメインの値に設定してください。clientId:このクイックスタートで前にセットアップした、Auth0アプリケーションのクライアントIDです。これは、Auth0 Dashboardにあるアプリケーションの設定の[Client ID(クライアントID)]フィールドで確認できます。
checkpoint.header
Auth0Providerコンポーネントが構成されました。アプリケーションを実行して次の点を確認します:
SDKが正しく初期化している
アプリケーションがAuth0に関連したエラーを投入していない
ユーザーを認証するには、useAuth0フックが提供するauthorizeメソッドを呼び出します。これは、認証のためにユーザーをAuth0のユニバーサルログインページへリダイレクトし、アプリへ戻します。
ユーザーのログインが成功したことを確認するには、フックの提供するuserプロパティがnullでないことを確認してください。
checkpoint.header
クリックでauthorizeを呼び出すボタンコンポーネントを追加します。ログインページにリダイレクトされてから、アプリケーションに戻されることを確認します。
ユーザーをログアウトさせるには、clearSessionを呼び出して、ユーザーをAuth0のログアウトエンドポイントにリダイレクトします。そうすると、ユーザーのセッションが認可サーバーから削除され、ユーザーがアプリケーションからログアウトされます。
checkpoint.header
clearSessionを呼び出すログアウトボタンを追加して、Auth0のログアウトエンドポイントにリダイレクトされ、再び戻されることを確認してください。アプリケーションにはログインされていないはずです。
useAuth0フックは、認証済みユーザーの情報を含むuserオブジェクトを公開します。これを使用すれば、認証済みユーザーについてデコードされたユーザープロファイル情報に、IDトークンからアクセスできます。
ユーザーが認証されていない場合、このプロパティはnullになります。
checkpoint.header
ログインして、結果のuserプロパティを調査します。emailやnameなど、現在のユーザーのプロファイル情報を確認します。
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
- react-native-auth0 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.