React Nativeアプリケーションにログインを追加する
このクイックスタートは、React Nativeフレームワーク用です。ExpoアプリケーションにAuth0を統合するには、「Expoクイックスタート」参照してください。
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションがある必要があります。Auth0アプリケーションは、プロジェクトに認証を構成する場所です。
アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、統合したいプロジェクトを表す既存のアプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリケーションのコードがSDKを通じてAuth0 APIを呼び出す際に使用されます。
このクイックスタートを使って構成されたすべての設定は、Dashboardのアプリケーションを自動更新します。今後、アプリケーションの管理も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
Was this helpful?
Android
PACKAGE_NAME.auth0://{yourDomain}/android/PACKAGE_NAME/callback
Was this helpful?
このセクションでは、React Native Auth0モジュールをインストールします。
Yarn
yarn add react-native-auth0
Was this helpful?
npm
npm install react-native-auth0 --save
Was this helpful?
追加のiOS手順:モジュールPodをインストールする
SDKの必須最低iOSデプロイメントターゲットは13.0です。プロジェクトの「ios/Podfile」でプラットフォームのターゲットが13.0になっていることを確認してください。
platform :ios '13.0'
Was this helpful?
CocoaPodsは、React Nativeフレームワークがプロジェクトに自己をインストールするために使うiOSパッケージ管理ツールです。iOSネイティブモジュールがiOSアプリで動作するように、最初にライブラリーPodをインストールします。古いReact Native SDKバージョンの知識がある方には、以前のLinking a Nativeモジュールに似ています。プロセスが簡略化されました:
ディレクトリをios
フォルダーに変更してpod install
を実行します。
cd ios
pod install
Was this helpful?
はじめに、ユーザーがログインする方法を提供する必要があります。Auth0がホストするログインページを使用することをお薦めします。

Androidを構成する
アプリケーションのディレクトリ(android/app/build.gradle
が典型的)でbuild.gradle
ファイルを開き、以下のマニフェストプレースホルダーを追加します。auth0Domain
の値には、上で構成したようにAuth0アプリケーション設定が含まれなければなりません。
android {
defaultConfig {
// Add the next line
manifestPlaceholders = [auth0Domain: "{yourDomain}", auth0Scheme: "${applicationId}.auth0"]
}
...
}
Was this helpful?
iOSを構成する
ios/<YOUR PROJECT>/AppDelegate.mm
ファイルで、以下を追加します:
#import <React/RCTLinkingManager.h>
(BOOL)application:(UIApplication *)app openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options
{
return [RCTLinkingManager application:app openURL:url options:options];
}
Was this helpful?
次に、アプリのバンドルIDを使ってURLSchemeを追加します。
ios
フォルダーでInfo.plist
を開き、CFBundleIdentifier
の値を見つけます。
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
Was this helpful?
この値の下に、CFBundleIdentifier
の値をCFBundleURLSchemes
の値として使い、URLタイプのエントリーを登録します。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>None</string>
<key>CFBundleURLName</key>
<string>auth0</string>
<key>CFBundleURLSchemes</key>
<array>
<string>$(PRODUCT_BUNDLE_IDENTIFIER).auth0</string>
</array>
</dict>
</array>
Was this helpful?
この値は、この後の手順で、Callback URLを定義するために使用します。以下の手順で、XCodeを用いて変更できます:
アプリのルートからターミナルで
ios/<YOUR PROJECT>.xcodeproj
ファイルを開くか、xed ios
を実行する。プロジェクトまたは希望ターゲットの[Build Settings(ビルド設定)]タブを開いて「Bundle Identifier」を含むセクションを見つける。
「Bundle Identifier」値を希望のアプリケーションのバンドルID名と置き換える。
詳細情報はReact Nativeドキュメントをご覧ください。
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にあるアプリケーションの[Settings(設定)]タブの[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.