> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Cómo instalar y empezar a usar Auth0.swift

# Auth0.swift

<Card title="Descripción general">
  SDK de Swift para iOS, macOS, tvOS y watchOS que te permite integrar Auth0 en tus aplicaciones sin esfuerzo. Agrega inicio de sesión y cierre de sesión, almacena credenciales de forma segura y accede a la información del usuario.

  **Consulta el** [**repositorio de GitHub**](https://github.com/auth0/Auth0.swift)

  **¿Vas a migrar desde la v1? Consulta la** [**Guía de migración**](https://github.com/auth0/Auth0.swift/blob/master/V2_MIGRATION_GUIDE.md)
</Card>

<div id="documentation">
  ## Documentación
</div>

* [Inicio rápido](/es/docs/quickstart/native/ios-swift/interactive): Muestra cómo integrar Auth0.swift en una app de iOS / macOS desde cero.
* [Aplicación de ejemplo](https://github.com/auth0-samples/auth0-ios-swift-sample/tree/master/Sample-01): Una app completa y funcional de iOS / macOS que puedes probar.
* [Ejemplos](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md): Explica cómo usar la mayoría de las funcionalidades.
* [Documentación de la API](https://auth0.github.io/Auth0.swift/documentation/auth0): Documentación generada automáticamente a partir de los comentarios del código que explica todas las funcionalidades disponibles.

  * [Web Auth](https://auth0.github.io/Auth0.swift/documentation/auth0/webauth)
  * [Gestor de credenciales](https://auth0.github.io/Auth0.swift/documentation/auth0/credentialsmanager)
  * [Cliente de la API de autenticación](https://auth0.github.io/Auth0.swift/documentation/auth0/authentication)
  * [Cliente de Management API (Usuarios)](https://auth0.github.io/Auth0.swift/documentation/auth0/users)
* [Preguntas frecuentes](https://github.com/auth0/Auth0.swift/blob/master/FAQ.md): Responde algunas preguntas habituales sobre Auth0.swift.
* [Documentación de Auth0:](https://auth0.com/docs) Explora nuestro sitio de documentación y obtén más información sobre Auth0.

<div id="getting-started">
  ## Primeros pasos
</div>

<div id="requirements">
  ### Requisitos
</div>

* iOS 13.0+ / macOS 11.0+ / tvOS 13.0+ / watchOS 7.0+
* Xcode 14.x
* Swift 5.7+

<Warning>
  Consulta la [política de soporte](https://github.com/auth0/Auth0.swift/tree/master#support-policy) para saber cuándo dejar de admitir versiones de Xcode, Swift y de la plataforma no se considerará un **cambio no retrocompatible**.
</Warning>

<div id="installation">
  ### Instalación
</div>

<div id="swift-package-manager">
  #### Swift Package Manager
</div>

Abra la siguiente opción del menú en Xcode:

**File > Add Packages...**

En el cuadro de búsqueda **Search or Enter Package URL** introduzca esta URL:

```http lines theme={null}
https://github.com/auth0/Auth0.swift
```

Luego, selecciona la dependencia y pulsa **Add Package**.

<div id="cocoapods">
  #### Cocoapods
</div>

Añade la siguiente línea a tu `Podfile`:

```bash lines theme={null}
pod 'Auth0', '~> 2.0'
```

Luego, ejecuta `pod install`.

<div id="carthage">
  #### Carthage
</div>

Agrega la siguiente línea a tu archivo `Cartfile`:

```bash lines theme={null}
github "auth0/Auth0.swift" ~> 2.0
```

Luego, ejecuta `carthage bootstrap --use-xcframeworks`.

<div id="configure-the-sdk">
  ### Configura el SDK
</div>

Ve al [Auth0 Dashboard](https://manage.auth0.com/#/applications/) y crea una nueva aplicación **Native**.

Auth0.swift necesita el **<Tooltip tip="ID de cliente: valor de identificación asignado por Auth0 a su recurso registrado." cta="Ver glosario" href="/es/docs/glossary?term=Client+ID">ID de cliente</Tooltip>** y el **dominio** de la aplicación de Auth0 para comunicarse con Auth0. Puedes encontrar estos datos en la página Settings de tu aplicación de Auth0. Si utilizas un [dominio personalizado](/es/docs/customize/custom-domains), usa el valor de tu <Tooltip tip="Dominio personalizado: dominio de terceros con un nombre especializado o personalizado." cta="Ver glosario" href="/es/docs/glossary?term=custom+domain">dominio personalizado</Tooltip> en lugar del valor de la página Settings.

<div id="configure-client-id-and-domain-with-a-plist">
  #### Configure el ID de cliente y el dominio con un archivo plist
</div>

Cree un archivo `plist` llamado `Auth0.plist` en el paquete de su aplicación con el siguiente contenido:

```xml lines theme={null}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>ClientId</key>
    <string>{yourAuth0ClientId}</string>
    <key>Domain</key>
    <string>{yourAuth0Domain}</string>
</dict>
</plist>
```

<div id="configure-client-id-and-domain-programmatically">
  #### Configura el ID de cliente y el dominio mediante programación
</div>

<div id="for-web-auth">
  ##### Para Web Auth
</div>

```swift lines theme={null}
Auth0
    .webAuth(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
```

<div id="for-the-authentication-api-client">
  ##### Para el cliente de la API de autenticación
</div>

```swift lines theme={null}
Auth0
    .authentication(clientId: "{yourAuth0ClientID}", domain: "{yourAuth0Domain}")
    // ...
```

<div id="for-the-management-api-client-users">
  ##### Para el cliente de Management API (Usuarios)
</div>

```swift lines theme={null}
Auth0
    .users(token: credentials.accessToken, domain: "{yourAuth0Domain}")
    // ...
```

<div id="configure-web-auth-ios-macos">
  ### Configurar Web Auth (iOS / macOS)
</div>

<div id="configure-callback-url-and-logout-url">
  #### Configurar la URL de callback y la URL de cierre de sesión
</div>

La URL de callback y la URL de cierre de sesión son las URL que Auth0 usa para redirigir de vuelta a su aplicación. Auth0 usa la URL de callback después de autenticar al usuario y la URL de cierre de sesión después de eliminar la <Tooltip tip="Cookie de sesión: entidad que, cuando está presente, permite que el usuario sea considerado autenticado." cta="Ver glosario" href="/es/docs/glossary?term=session+cookie">cookie de sesión</Tooltip>.

Como la URL de callback y la URL de cierre de sesión pueden manipularse, deberá agregar sus URL a los campos **Allowed Callback URLs** y **Allowed Logout URLs** en la página Settings de su aplicación de Auth0. Esto permitirá que Auth0 reconozca esas URL como válidas. Si la URL de callback y la URL de cierre de sesión no están configuradas, los usuarios no podrán iniciar ni cerrar sesión en la aplicación y recibirán un error.

Vaya a la página Settings de su [aplicación de Auth0](https://manage.auth0.com/#/applications/) y agregue la URL correspondiente a **Allowed Callback URLs** y **Allowed Logout URLs**, según la plataforma de su aplicación. Si usa un [dominio personalizado](/es/docs/customize/custom-domains), reemplace `{yourAuth0Domain}` por el valor de su dominio personalizado en lugar del valor de la página Settings.

<div id="ios">
  ##### iOS
</div>

```swift wrap lines theme={null}
{yourBundleIdentifier}://{yourAuth0Domain}/ios/{yourBundleIdentifier}/callback
```

<div id="macos">
  ##### macOS
</div>

```swift wrap lines theme={null}
{yourBundleIdentifier}://{yourAuth0Domain}/macos/{yourBundleIdentifier}/callback
```

Por ejemplo, si el identificador del paquete de iOS fuera `com.example.MyApp` y tu dominio de Auth0 fuera `example.us.auth0.com`, este valor sería:

```text wrap lines theme={null}
com.example.MyApp://example.us.auth0.com/ios/com.example.MyApp/callback
```

<Warning>
  Asegúrate de que la configuración [**Token Endpoint Authentication Method**](/es/docs/get-started/applications/confidential-and-public-applications/view-application-type) esté establecida en `None`.
</Warning>

<div id="configure-custom-url-scheme">
  #### Configura un esquema de URL personalizado
</div>

En Xcode, ve a la pestaña **Info** de la configuración del target de tu aplicación. En la sección **URL Types**, haz clic en el botón **＋** para añadir una nueva entrada. Allí, introduce `auth0` en el campo **Identifier** y `$(PRODUCT_BUNDLE_IDENTIFIER)` en el campo **URL Schemes**.

Esto registra tu identificador de paquete como un esquema de URL personalizado, para que la URL de callback y la URL de cierre de sesión puedan abrir tu aplicación.

<div id="web-auth-login-ios-macos">
  ### Inicio de sesión con Web Auth (iOS / macOS)
</div>

Importa el módulo `Auth0` en el archivo en el que quieras mostrar la página de inicio de sesión.

```swift lines theme={null}
import Auth0
```

Luego, muestra la página de [Universal Login](/es/docs/authenticate/login/auth0-universal-login) en la acción asociada a tu botón de **Iniciar sesión**.

```swift lines theme={null}
Auth0
    .webAuth()
    .start { result in
        switch result {
        case .success(let credentials):
            print("Obtained credentials: \(credentials)")
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }
```

<div id="using-asyncawait">
  #### Uso de async/await
</div>

```swift lines theme={null}
do {
    let credentials = try await Auth0.webAuth().start()
    print("Obtained credentials: \(credentials)")
} catch {
    print("Failed with: \(error)")
}
```

<div id="using-combine">
  #### Uso de Combine
</div>

```swift lines theme={null}
Auth0
    .webAuth()
    .start()
    .sink(receiveCompletion: { completion in
        if case .failure(let error) = completion {
            print("Failed with: \(error)")
        }
    }, receiveValue: { credentials in
        print("Obtained credentials: \(credentials)")
    })
    .store(in: &cancellables)
```

<div id="web-auth-logout-ios-macos">
  ### Cierre de sesión con Web Auth (iOS / macOS)
</div>

Cerrar la sesión del usuario implica borrar la cookie de sesión de <Tooltip tip="Universal Login: Su aplicación redirige a Universal Login, alojado en el Servidor de autorización de Auth0, para verificar la identidad de un usuario." cta="Ver glosario" href="/es/docs/glossary?term=Universal+Login">Universal Login</Tooltip> y luego eliminar las credenciales del usuario de su aplicación.

Llame al método `clearSession()` en la acción de su botón **Cerrar sesión**. Una vez borrada la cookie de sesión, [elimine las credenciales del usuario](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#clear-stored-credentials).

```swift lines theme={null}
Auth0
    .webAuth()
    .clearSession { result in
        switch result {
        case .success:
            print("Session cookie cleared")
            // Eliminar credenciales
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }
```

<div id="using-asyncawait">
  #### Uso de async/await
</div>

```swift lines theme={null}
do {
    try await Auth0.webAuth().clearSession()
    print("Session cookie cleared")
    // Eliminar credenciales
} catch {
    print("Failed with: \(error)")
}
```

<div id="using-combine">
  #### Uso de Combine
</div>

```swift lines theme={null}
Auth0
    .webAuth()
    .clearSession()
    .sink(receiveCompletion: { completion in
        switch completion {
        case .finished:
            print("Session cookie cleared")
            // Eliminar credenciales
        case .failure(let error):
            print("Failed with: \(error)")
        }
    }, receiveValue: {})
    .store(in: &cancellables)
```

<div id="sso-alert-box-ios-macos">
  ### Cuadro de alerta de SSO (iOS / macOS)
</div>

<Frame>
  <img src="https://mintcdn.com/translations/mMSz-RNYLuOm2GmQ/docs/images/cdy7uua7fh8z/c7JkfRnkm3HC12OqbNcpf/74cad82d875e50b2dca62088d44c2db9/sso-alert.png?fit=max&auto=format&n=mMSz-RNYLuOm2GmQ&q=85&s=05070055f9e61e5a35452d64e3029872" alt="undefined" width="323" height="200" data-path="docs/images/cdy7uua7fh8z/c7JkfRnkm3HC12OqbNcpf/74cad82d875e50b2dca62088d44c2db9/sso-alert.png" />
</Frame>

Consulta las [FAQ](https://github.com/auth0/Auth0.swift/blob/master/FAQ.md) para obtener más información sobre el cuadro de alerta que aparece de forma predeterminada al usar Web Auth.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Consulta también [How to Create a Seamless Mobile SSO (Single Sign-On) Experience in iOS](https://developer.okta.com/blog/2022/01/13/mobile-sso) para obtener una explicación detallada.
</Callout>

<div id="next-steps">
  ## Próximos pasos
</div>

Consulta la mayoría de las funcionalidades en [Ejemplos](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md):

* [Store credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#store-credentials): Almacena de forma segura las credenciales del usuario en el llavero.
* [Check for stored credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#check-for-stored-credentials): Comprueba si el usuario ya inició sesión cuando se inicia la aplicación.
* [Retrieve stored credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#retrieve-stored-credentials): Obtén las credenciales del usuario del llavero y renuévalas automáticamente si han expirado.
* [Clear stored credentials](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#clear-stored-credentials): Elimina las credenciales del usuario para completar el proceso de cierre de sesión.
* [Retrieve user information](https://github.com/auth0/Auth0.swift/blob/master/EXAMPLES.md#retrieve-user-information): Obtén la información más reciente del usuario desde el endpoint `/userinfo`.
