共用方式為


教學課程:在 iOS/macOS 應用程式註冊後自動登入使用者

適用於內含白色核取記號的綠色圓圈。 iOS (Swift) 具有白色核取符號的綠色圓圈。 macOS (Swift)

本教學課程說明如何使用原生驗證,在 iOS/macOS 應用程式註冊後自動登入使用者。

在本教學課程中,您會了解如何:

  • 註冊之後登入。
  • 處理錯誤。

必要條件

註冊之後登入

Sign in after sign up 是登入使用者流程的增強功能,具有成功註冊之後自動登入的效果。 SDK 可讓開發人員在註冊之後登入使用者,而不需要提供使用者名稱,或透過一次性密碼驗證電子郵件地址。

若要在成功註冊之後登入使用者,請使用 signIn(delegate) 中傳回之新狀態 SignInAfterSignUpStateonSignUpCompleted(newState) 方法:

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!"
        let parameters = MSALNativeAuthSignInAfterSignUpParameters()
        newState.signIn(parameters: parameters, delegate: self)
    }
}

signIn(parameters:delegate) 接受 MSALNativeAuthSignInAfterSignUpParameters 實例和委派參數,我們必須在 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
        let parameters = MSALNativeAuthGetAccessTokenParameters()
        result.getAccessToken(parameters: parameters, delegate: self)
    }
}

getAccessToken(parameters:delegate) 接受 MSALNativeAuthGetAccessTokenParameters 實例和委派參數,我們必須在 CredentialsDelegate 通訊協定中實作必要的方法。

在最常見的案例中,我們會收到 onAccessTokenRetrieveCompleted(result) 的呼叫,表示使用者已取得 access token

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 從外部系統擷取宣告。

請遵循 設定自訂宣告提供者 中的步驟,將外部系統的宣告新增至您的安全性權杖。

後續步驟