> ## 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.

> Gestión de usuarios con Auth0.Swift

# Auth0.swift: Gestión de usuarios

La <Tooltip tip="Management API: Un producto que permite a los clientes realizar tareas administrativas." cta="Ver glosario" href="/es/docs/glossary?term=Management+API">Management API</Tooltip> ofrece la función de [vinculación de cuentas de usuario](/es/docs/manage-users/user-accounts/user-account-linking), que le permite vincular y desvincular cuentas de usuario distintas de diferentes proveedores para asociarlas a un único perfil. También le permite actualizar los metadatos del usuario y otra información del perfil.

<div id="link-users">
  ## Vincular usuarios
</div>

Vincular cuentas de usuario permite que un usuario se autentique con cualquiera de sus cuentas y, sin importar cuál use, acceda al mismo perfil al iniciar sesión. De forma predeterminada, Auth0 trata todas estas cuentas como perfiles independientes, por lo que, si quiere que las cuentas de un usuario estén vinculadas, esta es la forma de hacerlo.

El método `link` acepta dos parámetros: el ID de usuario del perfil principal y el <Tooltip tip="Token de acceso: credencial de autorización, en forma de una cadena opaca o JWT, utilizada para acceder a una API." cta="Ver glosario" href="/es/docs/glossary?term=Access+Token">Token de acceso</Tooltip> del perfil secundario (el token obtenido después de iniciar sesión con esta identidad). El ID de usuario en cuestión es el identificador único de esta cuenta de usuario. Si el ID tiene el formato `facebook|1234567890`, el ID requerido es la parte que aparece después de la barra vertical (`|`) delimitadora (en este caso, `1234567890`).

```swift lines theme={null}
Auth0
   .users(token: "user-scoped access token")
   .link(userId, withOtherUserToken: "another user token")
   .start { result in
      switch result {
      case .success(let userInfo):
        print("User: \(userInfo)")
      case .failure(let error):
        print(error)
      }
   }
```

<div id="unlink-users">
  ## Desvincular usuarios
</div>

Desvincular usuarios es un proceso similar al de vincularlos. El método `unlink` acepta tres parámetros: el ID de usuario del perfil secundario, el proveedor del perfil secundario (el <Tooltip tip="Proveedor de identidad (IdP): Servicio que almacena y gestiona identidades digitales." cta="Ver glosario" href="/es/docs/glossary?term=identity+provider">proveedor de identidad</Tooltip> de la conexión) y el ID de usuario del perfil principal.
En esencia, los parámetros se interpretan así: "Desvincula este **usuario secundario** (con este **proveedor**) de este **usuario principal**".

```swift lines theme={null}
Auth0
   .users(token: "user-scoped access token")
   .unlink(identityId: identifier, provider: provider, fromUserId:userId)
   .start { result in
      switch result {
      case .success(let userInfo):
        print("User: \(userInfo)")
      case .failure(let error):
        print(error)
      }
   }
```

Cuando se vinculan cuentas, los metadatos del perfil de la cuenta secundaria no se fusionan con los metadatos del perfil de la cuenta principal. Del mismo modo, al desvincular cuentas, el perfil de la cuenta secundaria no conserva los metadatos del perfil de la cuenta principal.

<div id="retrieve-user-metadata">
  ## Obtener metadatos del usuario
</div>

```swift lines theme={null}
Auth0
    .users(token: "user-scoped access token")
    .get(userId, fields: ["user_metadata"], include: true)
    .start { result in
        switch result {
        case .success(let userInfo):
            print("User: \(userInfo)")
        case .failure(let error):
            print(error)
        }
    }
```

<div id="update-user-metadata">
  ## Actualizar los metadatos del usuario
</div>

Al actualizar los metadatos del usuario, crearás un objeto `userMetadata` y luego llamarás al método `patch`, al que pasarás el ID del usuario y el objeto `userMetadata`. Los valores de este objeto sobrescribirán los valores existentes con la misma clave o añadirán otros nuevos para las claves que aún no existan en los metadatos del usuario.

```swift lines theme={null}
Auth0
    .users(token: "user-scoped access token")
    .patch("user identifier", userMetadata: ["first_name": "John", "last_name": "Doe"])
    .start { result in
        switch result {
        case .success(let userInfo):
          print("User: \(userInfo)")
        case .failure(let error):
          print(error)
        }
    }
```
