iOSまたはmacOSアプリケーションにログインを追加する
このガイドは、Auth0.swift SDKを使って、iOSやmacOSアプリで認証の追加とユーザプロファイル情報へのにアクセスを行う方法について説明します。
このクイックスタートを使用するには、以下の手順に従います:
Auth0の無料アカウントにサインアップするか、Auth0にログインします。
統合したいiOSまたはmacOSのアプリを準備します。または、ログインした後に、サンプルアプリを表示してダウンロードすることもできます。
Auth0のサービスを利用するには、Auth0 Dashboadに設定済みのアプリケーションが必要です。Auth0アプリケーションは、開発中のアプリに対してどのように認証が動作して欲しいかを構成する場所です。
Auth0アプリケーションを構成する
対話型のセレクターを使ってAuth0アプリケーションを新規作成するか、既存のネイティブのAuth0アプリケーションを選択します。Auth0のすべてのアプリケーションには英数字からなる一意のクライアントIDが割り当てられており、アプリがSDKを通じてAuth0 APIを呼び出す際に使用されます。
このクイックスタートを使って構成されたすべての設定は、DashboardのAuth0アプリケーションを自動更新します。今後、アプリケーションの管理もDashboardで行えます。
完了済みの構成を見てみたい場合は、サンプルアプリをご覧ください。
Callback URLとログアウトURLを構成する
Auth0はリダイレクトでユーザーをアプリに戻すため、Callback URLとログアウトURLを呼び出します。Auth0は、ユーザーを認証した後にCallback URLを呼び出し、セッションのクッキーを削除した後にログアウトURLを呼び出します。Callback URLとログインURLを設定しないと、ユーザーはアプリにログインやログアウトが行えなくなり、アプリにエラーが発生します。
アプリのプラットフォームに応じて、以下のCallback URLとログアウトURLを追加してください。カスタムドメインがある場合は、Auth0テナントのドメインに代わってそちらを使用します。
iOS
https://{yourDomain}/ios/YOUR_BUNDLE_IDENTIFIER/callback,
YOUR_BUNDLE_IDENTIFIER://{yourDomain}/ios/YOUR_BUNDLE_IDENTIFIER/callback
Was this helpful?
macOS
https://{yourDomain}/macos/YOUR_BUNDLE_IDENTIFIER/callback,
YOUR_BUNDLE_IDENTIFIER://{yourDomain}/macos/YOUR_BUNDLE_IDENTIFIER/callback
Was this helpful?
たとえば、iOSのバンドル識別子がcom.example.MyApp
でAuth0ドメインがexample.us.auth0.com
の場合には、次の値になります:
https://example.us.auth0.com/ios/com.example.MyApp/callback,
com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback
Was this helpful?
関連ドメインを構成する
チームIDとバンドル識別子を構成する
Auth0アプリケーションの設定ページに移動して最後までスクロールし、 [Advanced Settings(詳細設定)]>[Device Settings(デバイス設定)]を開きます。[iOS]セクションで[Team ID(チームID)]にApple Team IDを、[App ID(アプリID)]にアプリのバンドルIDを設定します。
![Auth0 Dashboard> [Applications(アプリケーション)] > [Applications(アプリケーション)] > [Native App(ネイティブアプリ)] > [Settings(設定)]タブ > [Advanced Settings(詳細設定)] > [Device Settings(デバイス設定)]タブ](http://images.ctfassets.net/cdy7uua7fh8z/62v9bB3bUVMw9XLND5lcMI/1b20d248b400f75e1bf1174a7d0d0ba0/IOS_Settings_-_Japanese.png)
これで、アプリがAuth0テナントのapple-app-site-association
ファイルに追加されます。
関連ドメインの機能を追加する
Xcodeで、アプリのターゲット設定の[Signing & Capabilities(署名と機能)]タブに移動し、[+ Capability(+機能)]ボタンを押します。それから[Associated Domains(関連ドメイン)]を選択します。
![[Xcode]> [Signing & Capabilities(署名と機能)]タブ > [Add New(新規追加)] > [Associated Domains(関連ドメイン)]](http://images.ctfassets.net/cdy7uua7fh8z/72eVE104zKB5Q4NPnx6MCa/66c81ee64f104583bd00b9916778f989/ios-xcode-capabilities.png)
次に、以下の エントリーを[Associated Domains(関連ドメイン)]の下に追加します:
webcredentials:labs-fundtraining.us.auth0.com
Was this helpful?
カスタムドメインがある場合は、Auth0テナントのドメインではなくそちらを使用してください。
Swift Package Managerを使用する
Xcodeで以下のメニュー項目を開きます:
[File(ファイル)] > [Add Package Dependencies...(パッケージの依存関係を追加する...)]
[Search or Enter Package URL(パッケージURLを検索または入力)]検索ボックスに次のURLを入力します:
https://github.com/auth0/Auth0.swift
Was this helpful?
それから依存ルールを選択して[Add Package(パッケージを追加)]を押します。
CocoaPodsを使用する
以下のラインをPodfile
に追加します:
pod 'Auth0', '~> 2.0'
Was this helpful?
それからpod install
を実行します。
Carthageを使用する
以下のラインをCartfile
に追加します:
github "auth0/Auth0.swift" ~> 2.0
Was this helpful?
それからcarthage bootstrap --use-xcframeworks
を実行します。
Auth0.swiftのSDKにはAuth0domainとClient IDが必要です。これらの値はAuth0アプリケーションの設定ページで確認できます
domain:Auth0テナントのドメインです。カスタムドメインがある場合は、Auth0テナントのドメインではなくそちらを使用してください。
クライアントID:このクイックスタートで前にセットアップした、Auth0アプリケーションの英数字からなる一意のIDです。
Auth0ドメインとクライアントIDの値を含むアプリバンドルにAuth0.plist
という名前のplist
ファイルを作成します。
checkpoint.header
Auth0.swift SDKの構成を完了しました。アプリを実行して、SDKに関連したエラーを出していないことを確認します。
ログインページを提示したいファイルにAuth0
モジュールをインポートします。それからログインボタンのアクションでユニバーサルログインページを提示します。

checkpoint.header
ログインボタンを押して次の点を確認します:
アラートボックスが表示され、同意を求める。
[Continue(続行)]を選択するとSafariモーダルでユニバーサルログインページが開く。
ユーザー名とパスワード、またはソーシャルプロバイダーを使って、ログインまたはサインアップできる。
その後、Safariモーダルが自動的に閉じる。
アプリにログインできるようになったら、ログアウトする方法が必要です。ログアウトボタンのアクションでclearSession()
メソッドを呼び出し、ユニバーサルログインセッションのクッキーを消去します。
checkpoint.header
ログアウトボタンを押して次の点を確認します:
アラートボックスが表示され、同意を求める。
[Continue(続行)]を選択するとSafariモーダルでページが開く。
その直後にSafariモーダルが自動的に閉じる。
ログイン後に得るCredentials
インスタンスにはIDトークンが含まれます。IDトークンは、ログインしたユーザーに関連するプロファイル情報(メールアドレスやプロフィール写真など)を含みます。これらの詳細情報はアプリのユーザーインターフェイスをパーソナライズするために使用できます。
Auth0.swiftのSDKには、IDトークンのようなJWTをデコードするためのユーティリティが含まれています。ユーザープロファイル情報にアクセスしたいファイルへJWTDecode
モジュールをインポートすることで開始します。それから、decode(jwt:)
メソッドを使ってIDトークンをデコードし、そこに含まれるクレームにアクセスします。
checkpoint.header
ログイン後にemail
、picture
、その他すべてのクレームにアクセスできることを確認します。
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.swift 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.