iOSまたはmacOSアプリケーションにログインを追加する

このガイドは、Auth0.swift SDKを使って、iOSやmacOSアプリで認証の追加とユーザプロファイル情報へのにアクセスを行う方法について説明します。

このクイックスタートを使用するには、以下の手順に従います:

  • Auth0の無料アカウントにサインアップするか、Auth0にログインします。

  • 統合したいiOSまたはmacOSのアプリを準備します。または、ログインした後に、サンプルアプリを表示してダウンロードすることもできます。

1

Auth0を構成する

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(デバイス設定)]タブ

これで、アプリがAuth0テナントのapple-app-site-associationファイルに追加されます。

関連ドメインの機能を追加する

Xcodeで、アプリのターゲット設定の[Signing & Capabilities(署名と機能)]タブに移動し、[+ Capability(+機能)]ボタンを押します。それから[Associated Domains(関連ドメイン)]を選択します。

[Xcode]> [Signing & Capabilities(署名と機能)]タブ > [Add New(新規追加)] > [Associated Domains(関連ドメイン)]

次に、以下の エントリー[Associated Domains(関連ドメイン)]の下に追加します:

webcredentials:labs-fundtraining.us.auth0.com

Was this helpful?

/

カスタムドメインがある場合は、Auth0テナントのドメインではなくそちらを使用してください。

2

SDKをインストールする

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を実行します。

3

SDKを構成する

Auth0.swiftのSDKにはAuth0domainClient IDが必要です。これらの値はAuth0アプリケーションの設定ページで確認できます

  • domain:Auth0テナントのドメインです。カスタムドメインがある場合は、Auth0テナントのドメインではなくそちらを使用してください。

  • クライアントID:このクイックスタートで前にセットアップした、Auth0アプリケーションの英数字からなる一意のIDです。

Auth0ドメインとクライアントIDの値を含むアプリバンドルにAuth0.plistという名前のplistファイルを作成します。

checkpoint.header

Auth0.swift SDKの構成を完了しました。アプリを実行して、SDKに関連したエラーを出していないことを確認します。

4

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

ログインページを提示したいファイルにAuth0モジュールをインポートします。それからログインボタンのアクションでユニバーサルログインページを提示します。

iOSアプリのユニバーサルログイン画面の例

checkpoint.header

ログインボタンを押して次の点を確認します:

  • アラートボックスが表示され、同意を求める。

  • [Continue(続行)]を選択するとSafariモーダルでユニバーサルログインページが開く。

  • ユーザー名とパスワード、またはソーシャルプロバイダーを使って、ログインまたはサインアップできる。

  • その後、Safariモーダルが自動的に閉じる。

5

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

アプリにログインできるようになったら、ログアウトする方法が必要です。ログアウトボタンのアクションでclearSession()メソッドを呼び出し、ユニバーサルログインセッションのクッキーを消去します。

checkpoint.header

ログアウトボタンを押して次の点を確認します:

  • アラートボックスが表示され、同意を求める。

  • [Continue(続行)]を選択するとSafariモーダルでページが開く。

  • その直後にSafariモーダルが自動的に閉じる。

6

ユーザープロファイル情報にアクセスする

ログイン後に得るCredentialsインスタンスにはIDトークンが含まれます。IDトークンは、ログインしたユーザーに関連するプロファイル情報(メールアドレスやプロフィール写真など)を含みます。これらの詳細情報はアプリのユーザーインターフェイスをパーソナライズするために使用できます。

Auth0.swiftのSDKには、IDトークンのようなJWTをデコードするためのユーティリティが含まれています。ユーザープロファイル情報にアクセスしたいファイルへJWTDecodeモジュールをインポートすることで開始します。それから、decode(jwt:)メソッドを使ってIDトークンをデコードし、そこに含まれるクレームにアクセスします。

checkpoint.header

ログイン後にemailpicture、その他すべてのクレームにアクセスできることを確認します。

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

Did it work?

Any suggestion or typo?

Edit on GitHub
Sign Up

Sign up for an or to your existing account to integrate directly with your own tenant.