<!--
{
  "availability" : [
    "iOS: 13.0.0 -",
    "iPadOS: 13.0.0 -",
    "macCatalyst: 13.1.0 -",
    "macOS: 10.15.0 -",
    "tvOS: 13.0.0 -",
    "visionOS: 1.0.0 -",
    "watchOS: 6.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AuthenticationServices",
  "identifier" : "/documentation/AuthenticationServices/ASAuthorizationController",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Authentication Services"
    ],
    "preciseIdentifier" : "c:objc(cs)ASAuthorizationController"
  },
  "title" : "ASAuthorizationController"
}
-->

# ASAuthorizationController

A controller that manages authorization requests that a provider creates.

```
class ASAuthorizationController
```

## Overview

Create authorization requests for the credential types your app supports, such as [`ASAuthorizationAppleIDRequest`](/documentation/AuthenticationServices/ASAuthorizationAppleIDRequest) for Sign in with Apple, or [`ASAuthorizationPasswordRequest`](/documentation/AuthenticationServices/ASAuthorizationPasswordRequest) for password credentials. Create an authorization controller using [`init(authorizationRequests:)`](/documentation/AuthenticationServices/ASAuthorizationController/init(authorizationRequests:)), supplying the authorization requests you create. Set the authorization controller’s [`delegate`](/documentation/AuthenticationServices/ASAuthorizationController/delegate) to receive responses when requests succeed or fail, and set its [`presentationContextProvider`](/documentation/AuthenticationServices/ASAuthorizationController/presentationContextProvider) so that the authorization controller can present UI.

Call [`performAutoFillAssistedRequests()`](/documentation/AuthenticationServices/ASAuthorizationController/performAutoFillAssistedRequests()) to present inline UI to request credentials, or [`performRequests()`](/documentation/AuthenticationServices/ASAuthorizationController/performRequests()) or [`performRequests(options:)`](/documentation/AuthenticationServices/ASAuthorizationController/performRequests(options:)) to request credentials using modal UI. [`ASAuthorizationController`](/documentation/AuthenticationServices/ASAuthorizationController) calls your delegate’s methods when the request completes.

Set the content type of text fields in your app’s login UI so that [`ASAuthorizationController`](/documentation/AuthenticationServices/ASAuthorizationController) can detect when to offer AutoFill suggestions. Use <doc://com.apple.documentation/documentation/UIKit/UITextContentType/username> as the content type for user name text fields, and <doc://com.apple.documentation/documentation/UIKit/UITextContentType/password> for password fields.

## Topics

### Creating a controller

[`init(authorizationRequests:)`](/documentation/AuthenticationServices/ASAuthorizationController/init(authorizationRequests:))

Creates a controller from a collection of authorization requests.

### Inspecting requests

[`ASAuthorizationRequest`](/documentation/AuthenticationServices/ASAuthorizationRequest)

A base class for different kinds of authorization requests.

[`authorizationRequests`](/documentation/AuthenticationServices/ASAuthorizationController/authorizationRequests)

The authorization requests that the controller manages.

[`customAuthorizationMethods`](/documentation/AuthenticationServices/ASAuthorizationController/customAuthorizationMethods)

An array of custom authorization methods for the user to choose.

### Presenting requests

[`presentationContextProvider`](/documentation/AuthenticationServices/ASAuthorizationController/presentationContextProvider)

A delegate that provides a display context in which the system can present an authorization interface to the user.

[`ASAuthorizationControllerPresentationContextProviding`](/documentation/AuthenticationServices/ASAuthorizationControllerPresentationContextProviding)

An interface the controller uses to ask a delegate for a presentation context.

### Executing requests

[`performRequests()`](/documentation/AuthenticationServices/ASAuthorizationController/performRequests())

Starts the specified authorization flows during controller initialization.

[`performRequests(options:)`](/documentation/AuthenticationServices/ASAuthorizationController/performRequests(options:))

Starts the specified authorization flows during controller initialization.

[`performAutoFillAssistedRequests()`](/documentation/AuthenticationServices/ASAuthorizationController/performAutoFillAssistedRequests())

Initiates the authorization flows for requests that support AutoFill presentation.

[`cancel()`](/documentation/AuthenticationServices/ASAuthorizationController/cancel())

Cancels any active authorization requests.

[`ASAuthorizationController.RequestOptions`](/documentation/AuthenticationServices/ASAuthorizationController/RequestOptions)

Options that modify how a controller performs authorization requests.

### Responding to request completion

[`delegate`](/documentation/AuthenticationServices/ASAuthorizationController/delegate)

A delegate that the authorization controller informs about the success or failure of an authorization attempt.

[`authorizationController(_:didCompleteWithCustomMethod:)`](/documentation/AuthenticationServices/ASAuthorizationControllerDelegate/authorizationController(_:didCompleteWithCustomMethod:))

Informs the delegate when authorization completes, and specifies the custom method the user selected.

[`ASAuthorizationControllerDelegate`](/documentation/AuthenticationServices/ASAuthorizationControllerDelegate)

An interface for providing information about the outcome of an authorization request.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)