次の方法で共有


チュートリアル: iOS/macOS アプリでのサインアップ後にユーザーを自動的にサインインさせる

適用対象: 白いチェック マーク記号がある緑の円。 iOS (Swift) 白いチェック マーク記号がある緑の円。 macOS (Swift)

このチュートリアルでは、ネイティブ認証を使って iOS アプリにサインアップした後で、ユーザーを自動的にサインインさせる方法について説明します。

このチュートリアルでは、次の作業を行う方法について説明します。

  • サインアップ後のサインイン。
  • エラーを処理します。

前提条件

サインアップ後にサインインする

Sign in after sign up は、サインイン ユーザー フローの拡張機能であり、正常にサインアップした後に自動的にサインインできるようになります。 SDK を使用すると、開発者はサインアップ後にユーザー名を指定せずにユーザーをサインインさせたり、ワンタイム パスコードを使用してメール アドレスを確認したりできます。

サインアップが成功した後にユーザーをサインインさせるには、onSignUpCompleted(newState) で返された新しい状態 SignInAfterSignUpStatesignIn(delegate) メソッドを使用します。

extension ViewController: SignUpVerifyCodeDelegate {
    func onSignUpVerifyCodeError(error: MSAL.VerifyCodeError, newState: MSAL.SignUpCodeRequiredState?) {
        resultTextView.text = "Error verifying code: \(error.errorDescription ?? "no description")"
    }

    func onSignUpCompleted(newState: SignInAfterSignUpState) {
        resultTextView.text = "Signed up successfully!"
        newState.signIn(delegate: self)
    }
}

signIn(delegate) はデリゲート パラメータを受け取るため、SignInAfterSignUpDelegate プロトコルで必要なメソッドを実装する必要があります。

最も一般的なシナリオでは、ユーザーがサインインしたことを示す onSignInCompleted(result) の呼び出しを受け取ります。 結果を使用して、access token を取得できます。

extension ViewController: SignInAfterSignUpDelegate {
    func onSignInAfterSignUpError(error: SignInAfterSignUpError) {
        resultTextView.text = "Error signing in after sign up"
    }

    func onSignInCompleted(result: MSAL.MSALNativeAuthUserAccountResult) {
        // User successfully signed in
        result.getAccessToken(delegate: self)
    }
}

getAccessToken(delegate) はデリゲート パラメータを受け取るため、CredentialsDelegate プロトコルで必要なメソッドを実装する必要があります。

最も一般的なシナリオでは、ユーザーが access token を取得したことを示す onAccessTokenRetrieveCompleted(result) の呼び出しを受け取ります。

extension ViewController: CredentialsDelegate {
    func onAccessTokenRetrieveError(error: MSAL.RetrieveAccessTokenError) {
        resultTextView.text = "Error retrieving access token"
    }

    func onAccessTokenRetrieveCompleted(result: MSALNativeAuthTokenResult) {
        resultTextView.text = "Signed in. Access Token: \(result.accessToken)"
    }
}

カスタム クレーム プロバイダーの構成

外部システムからのクレームをアプリに発行されるトークンに追加する場合は、カスタム クレーム プロバイダーを使用します。 カスタム クレーム プロバイダーは、外部システムからクレームを取り込むために、外部 REST API を呼び出すカスタム認証拡張機能で構成されています。

カスタム クレーム プロバイダーの構成の手順に従って、外部システムからのクレームをセキュリティ トークンに追加します。

次のステップ