---
title: "completeUpgradeToSignInWithApple(userInfo:)"
framework: authenticationservices
role: symbol
role_heading: Instance Method
path: "authenticationservices/asaccountauthenticationmodificationextensioncontext/completeupgradetosigninwithapple(userinfo:)"
---

# completeUpgradeToSignInWithApple(userInfo:)

Completes the process of upgrading an account’s authentication credentials from using passwords to using Sign in with Apple.

## Declaration

```swift
func completeUpgradeToSignInWithApple(userInfo: [AnyHashable : Any]? = nil)
```

## Parameters

- `userInfo`: A dictionary that contains details to pass to the extension’s containing app if the app initiated the account modification request.

## Mentioned in

Upgrading Account Security With an Account Authentication Modification Extension

## Discussion

Discussion After successfully upgrading to Sign in with Apple, the system deletes the password credentials from the keychain. To receive the userInfo dictionary in your app, set a delegate on the ASAccountAuthenticationModificationController when initiating the request. The delegate receives the userInfo dictionary as a parameter to accountAuthenticationModificationController(_:didSuccessfullyComplete:userInfo:).

## See Also

### Handling Requests

- [completeChangePasswordRequest(updatedCredential:userInfo:)](authenticationservices/asaccountauthenticationmodificationextensioncontext/completechangepasswordrequest(updatedcredential:userinfo:).md)
- [getSignInWithAppleUpgradeAuthorization(state:nonce:completionHandler:)](authenticationservices/asaccountauthenticationmodificationextensioncontext/getsigninwithappleupgradeauthorization(state:nonce:completionhandler:).md)
- [cancelRequest(withError:)](authenticationservices/asaccountauthenticationmodificationextensioncontext/cancelrequest(witherror:).md)
- [ASExtensionLocalizedFailureReasonErrorKey](authenticationservices/asextensionlocalizedfailurereasonerrorkey.md)
