教學課程:在 iOS/macOS 應用程式註冊後自動登入使用者
適用於: iOS (Swift)
macOS (Swift)
本教學課程說明如何使用原生驗證,在 iOS/macOS 應用程式註冊後自動登入使用者。
在本教學課程中,您會了解如何:
- 註冊之後登入。
- 處理錯誤。
必要條件
- 如果您使用的是 iOS,請遵循使用原生驗證在樣本 iOS (Swift) 行動裝置應用程式中登入使用者的步驟。 如果您使用 macOS,請遵循 使用原生驗證在樣本 macOS (Swift) 應用程式中登入使用者的步驟。 本文說明如何使用租用戶設定,執行您所設定的樣本應用程式。
- 教學課程:使用原生驗證在 iOS/macOS 應用程式中新增註冊。 透過本教學課程中的步驟,您應能利用電子郵件一次性密碼或電子郵件與密碼進行註冊。
註冊之後登入
Sign in after sign up
是登入使用者流程的增強功能,具有成功註冊之後自動登入的效果。 SDK 可讓開發人員在註冊之後登入使用者,而不需要提供使用者名稱,或透過一次性密碼驗證電子郵件地址。
若要在成功註冊之後登入使用者,請使用 signIn(delegate)
中傳回之新狀態 SignInAfterSignUpState
的 onSignUpCompleted(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 從外部系統擷取宣告。
請遵循 設定自訂宣告提供者 中的步驟,將外部系統的宣告新增至您的安全性權杖。