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

# Eliminar método de autenticación

> Elimina un único método de autenticación del usuario autenticado.

export const Scopes = ({scopes = []}) => {
  return <div>
      <div class="api-section-heading flex flex-col gap-y-4 w-full">
        <div class="flex items-baseline border-b pb-2.5 border-gray-100 dark:border-gray-800 w-full">
          <h4 class="api-section-heading-title flex-1 mb-0">Scopes</h4>
          <div class="flex items-center"></div>
        </div>
      </div>
      <div class="mt-4">
        <div class="space-y-4 whitespace-normal prose prose-sm prose-gray dark:prose-invert overflow-wrap-anywhere [&_*]:overflow-wrap-anywhere">
          <p class="whitespace-pre-line text-xs">
            {"Los alcances definen los permisos y los niveles de acceso para las solicitudes a la API y los tokens de autenticación."}
          </p>
        </div>
      </div>
      <div class="flex font-mono text-sm group/param-head param-head break-all relative mt-6" id="scopes-scopes">
        <div class="flex-1 flex flex-col content-start py-0.5 mr-5">
          <div class="flex items-center flex-wrap gap-2">
            <div class="absolute -top-1.5">
              <a href="#scopes-scopes" class="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 focus:opacity-100 focus:outline-0 py-2 [.expandable-content_&]:-ml-[2.1rem] group/link" aria-label="Ir al encabezado">
                ​
                <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light">
                  <svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512">
                    <path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path>
                  </svg>
                </div>
              </a>
            </div>
            {scopes.map((scope, index) => {
    return <span class="flex items-center px-2 py-0.5 rounded-md bg-gray-100/50 dark:bg-white/5 text-gray-600 dark:text-gray-200 font-medium break-all" style={{
      lineHeight: "1rem",
      fontSize: "0.75rem",
      fontFamily: 'var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace'
    }} data-component-part="field-info-pill" key={index}>
                  {scope}
                </span>;
  })}
          </div>
        </div>
      </div>
    </div>;
};

export const ApiReleaseLifecycle = ({releaseLifecycle = "GA"}) => {
  const lifecycleMap = {
    ea: "Acceso Anticipado",
    ga: "Disponible Generalmente",
    deprecated: "Obsoleto",
    planned: "Planificado",
    beta: "Beta"
  };
  const LIFECYCLE_THEMES = {
    info: {
      light: {
        bg: "lab(91.896% .077188 -6.94053)",
        text: "lab(36.091% 25.9241 -68.0384)"
      },
      dark: {
        bg: "lab(16.0426% 6.71726 -27.2409)",
        text: "lab(72.6029% 4.08953 -41.9669)"
      }
    },
    secondary: {
      light: {
        bg: "lab(90.8548% 11.3355 8.01476)",
        text: "lab(47.5286% 56.4238 43.4706)"
      },
      dark: {
        bg: "lab(16.3609% 37.191 25.6346)",
        text: "lab(71.881% 41.5 29.4839)"
      }
    },
    danger: {
      light: {
        bg: "lab(94.7916% -.0000298023 0)",
        text: "lab(54.3656% 0 -.0000119209)"
      },
      dark: {
        bg: "lab(13.232% 0 0)",
        text: "lab(51.6164% 0 0)"
      }
    }
  };
  const LIFECYCLE_THEME_MAP = {
    ea: "info",
    ga: "info",
    beta: "info",
    deprecated: "secondary",
    planned: "danger"
  };
  const lifecycle = releaseLifecycle.toLocaleLowerCase();
  const lifecycleText = lifecycleMap[lifecycle];
  if (!lifecycleText) {
    return null;
  }
  const theme = LIFECYCLE_THEMES[LIFECYCLE_THEME_MAP[lifecycle]];
  return <div>
      <div className="api-section-heading flex flex-col gap-y-4 w-full">
        <div className="flex items-baseline border-b pb-2.5 border-gray-100 dark:border-gray-800 w-full">
          <h4 className="api-section-heading-title flex-1 mb-0">Ciclo de Vida de la Versión</h4>
        </div>
      </div>
      <div className="flex font-mono text-sm group/param-head param-head break-all relative mt-2.5" id="releaselifecycle-lifecycle">
        <div className="flex-1 flex flex-col content-start py-0.5 mr-5">
          <div className="flex items-center flex-wrap gap-2">
            <div className="absolute -top-1.5">
              <a href="#releaselifecycle-lifecycle" className="-ml-10 flex items-center opacity-0 border-0 group-hover/param-head:opacity-100 focus:opacity-100 focus:outline-0 py-2 [.expandable-content_&]:-ml-[2.1rem] group/link" aria-label="Navegar al encabezado">
                <div className="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light">
                  <svg xmlns="http://www.w3.org/2000/svg" fill="gray" height="12px" viewBox="0 0 576 512">
                    <path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path>
                  </svg>
                </div>
              </a>
            </div>
            <span className="inline-flex items-center w-fit font-medium gap-1 py-0.5 px-2 rounded-md" style={{
    lineHeight: "1rem",
    fontSize: "0.75rem",
    fontFamily: 'var(--font-jetbrains-mono), ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace',
    backgroundColor: `light-dark(${theme.light.bg}, ${theme.dark.bg})`,
    color: `light-dark(${theme.light.text}, ${theme.dark.text})`,
    borderColor: `light-dark(color-mix(in oklab, ${theme.light.text} 25%, transparent), color-mix(in oklab, ${theme.dark.text} 25%, transparent))`
  }}>
              {lifecycleText}
            </span>
          </div>
        </div>
      </div>
    </div>;
};

<ApiReleaseLifecycle releaseLifecycle="GA" />

<Scopes scopes={["delete:me:authentication_methods"]} />


## OpenAPI

````yaml es/docs/oas/myaccount/myaccount-api-oas.json DELETE /authentication-methods/{authentication_method_id}
openapi: 3.1.0
info:
  description: >-
    La API My Account de Auth0 proporciona un conjunto específico de endpoints
    para que los usuarios administren la información de su propia cuenta. Los
    clientes pueden usar estas APIs para crear experiencias de autoservicio en
    sus aplicaciones o añadir progresivamente datos a una cuenta de usuario.


    La API My Account funciona en el contexto del usuario que ha iniciado sesión
    y puede usarse directamente en aplicaciones de cara al usuario.


    :::tip Uso del dominio de Auth0 frente al dominio personalizado


    La API My Account admite el uso de su dominio canónico de Auth0 o de su
    dominio personalizado, pero debe usar el mismo durante todo el proceso, lo
    que incluye:


    - Obtener un token de acceso

    - Establecer el valor de audiencia

    - Llamar al endpoint de la API My Account


    Para obtener más información, consulte [Custom
    Domains](https://auth0.com/docs/customize/custom-domains).


    :::


    ## Activar la API My Account


    Puede activar la API My Account para su inquilino en el Auth0 Dashboard:


    1. Vaya a Authentication > APIs.

    2. Busque el banner de la API MyAccount.

    3. Seleccione Activate.


    ![](https://images.ctfassets.net/cdy7uua7fh8z/DGkDQNIHcegN8vtQyEvF3/a2e98b06867701a66fa1f1b3df1c996b/My_Account_API_-_Activate.png)


    De forma predeterminada, la API My Account se crea con las siguientes
    políticas de acceso a la API de la aplicación:


    `require_client_grant` para flujos de usuario


    `deny_all` para flujos de cliente (de máquina a máquina)


    Para que una aplicación acceda a la API My Account en nombre del usuario,
    debe crear explícitamente un client grant para esa aplicación, lo que le
    permite definir los alcances máximos que la aplicación puede solicitar. Como
    alternativa, puede cambiar la política de los flujos de acceso de usuario a
    allow_all, lo que permite que cualquier aplicación de su inquilino solicite
    cualquier alcance de la API My Account.


    Como la API My Account expone información y operaciones sensibles, Auth0 no
    recomienda usar allow_all para los flujos de acceso de usuario. Debe seguir
    el principio de privilegio mínimo con la API My Account para garantizar que
    las aplicaciones solo obtengan acceso a lo que realmente necesitan y así
    minimizar los posibles riesgos de seguridad.


    Los permisos finales concedidos a la aplicación estarán determinados por la
    intersección entre los alcances permitidos por la política de acceso a la
    API de la aplicación, los permisos de control de acceso basado en roles
    (RBAC) asignados al usuario final y cualquier consentimiento otorgado por el
    usuario (si corresponde).


    :::info Flujos admitidos


    No puede actualizar la política de API de la aplicación para el acceso de
    cliente a la API My Account, lo que significa que no puede acceder a la API
    My Account mediante el flujo de credenciales del cliente.


    :::


    Para obtener más información sobre cómo administrar las políticas de acceso
    a la API de la aplicación y los client grants asociados, consulte
    [Application Access to APIs: Client
    Grants](https://auth0.com/docs/get-started/applications/application-access-to-apis-client-grants).


    ## Obtener un token de acceso


    Puede obtener un token de acceso para la API My Account de la misma manera
    que obtendría un token de acceso para una de sus propias APIs.


    :::info &nbsp

    Si va a permitir que la API My Account realice operaciones sensibles (como
    registrar un método de autenticación), le recomendamos encarecidamente que
    use [autenticación
    escalonada](https://auth0.com/docs/secure/multi-factor-authentication/step-up-authentication)
    para aplicar políticas de seguridad adicionales mediante [autenticación
    multifactor
    (MFA)](https://auth0.com/docs/secure/multi-factor-authentication).

    :::


    Si usa Universal Login, consulte los siguientes artículos:


    - [Llame a su API mediante el Flujo de código de
    autorización](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow)

    - [Llame a su API mediante el Flujo de código de autorización con
    PKCE](https://auth0.com/docs/get-started/authentication-and-authorization-flow/authorization-code-flow-with-pkce/call-your-api-using-the-authorization-code-flow-with-pkce)


    Si usa inicio de sesión integrado, consulte los siguientes artículos:


    - [Llame a su API mediante el flujo de contraseña del propietario del
    recurso](https://auth0.com/docs/get-started/authentication-and-authorization-flow/resource-owner-password-flow/call-your-api-using-resource-owner-password-flow)

    - [Flujo Login con la API nativa de claves de
    acceso](https://auth0.com/docs/native-passkeys-api#login-flow)


    ## Ejemplos


    ### Universal Login con flujo de código de autorización


    **Paso 1: Solicitar código de autorización**


    ```

    curl --request GET \
      --url 'https://{yourDomain}/authorize?response_type=code&client_id={yourClientId}&redirect_uri=%7ByourRedirectUri%7D&scope=create%3Ame%3Aauthentication_methods&offline_access=&audience=https%3A%2F%2F{yourDomain}%2Fme%2F'
    ```


    **Paso 2: Intercambiar el código por un token de acceso**


    ```

    curl --request POST \
      --url 'https://{yourDomain}/oauth/token' \
      --header 'content-type: application/json' \
      --data '{"grant_type": "authorization_code","client_id": "{yourClientId}","client_secret": "{yourClientSecret}","code": "{yourAuthorizationCode}","redirect_uri": "{yourRedirectUri}","audience": "{yourAudience}","scope": "create:me:authentication_methods","offline_access": ""}'
    ```


    ### Inicio de sesión integrado con claves de acceso nativas


    **Paso 1: Solicitar desafío de inicio de sesión**


    ```

    curl --request POST \
      --url 'https://{yourDomain}/passkey/challenge' \
      --header 'content-type: application/json' \
      --data '{"client_id": "{yourClientId}"}'
    ```


    **Paso 2: Autenticar a un usuario existente**


    ```

    curl --request POST \
      --url 'https://{yourDomain}/oauth/token' \
      --header 'content-type: application/json' \
      --data '{  "grant_type": "urn:okta:params:oauth:grant-type:webauthn",  "client_id": "{yourClientId}",  "scope": "create:me:authentication_methods offline_access",  "audience": "https://{yourDomain}/me/",  "auth_session": "{sessionIdFromTheFirstRequest}",  "authn_response": "{authenticatorResponse}"}'
    ```
  title: My Account
  version: '1.0'
servers:
  - url: https://{host}/me/v1
    variables:
      host:
        default: auth0.auth0.com
        description: Nombre de host personalizado o canónico
security: []
tags:
  - description: Factores
    name: factors
    x-displayName: Factors
  - description: Cuentas conectadas
    name: connected-accounts
    x-displayName: Connected Accounts
  - description: Métodos de autenticación
    name: authentication-methods
    x-displayName: Authentication Methods
  - description: Consentimientos
    name: consents
    x-displayName: Consents
paths:
  /authentication-methods/{authentication_method_id}:
    delete:
      tags:
        - authentication-methods
      summary: Eliminar un método de autenticación por ID
      description: Elimina un único método de autenticación del usuario autenticado.
      operationId: deleteAuthenticationMethod
      parameters:
        - $ref: '#/components/parameters/PathAuthenticationMethodId'
      responses:
        '204':
          description: Método de autenticación eliminado correctamente
          headers:
            x-ratelimit-limit:
              $ref: '#/components/headers/XRateLimitLimitHeader'
            x-ratelimit-remaining:
              $ref: '#/components/headers/XRateLimitRemainingHeader'
            x-ratelimit-reset:
              $ref: '#/components/headers/XRateLimitResetHeader'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
      security:
        - Bearer-DPoP:
            - delete:me:authentication_methods
      x-codeSamples: []
components:
  parameters:
    PathAuthenticationMethodId:
      description: >-
        ID del método de autenticación. Este valor forma parte del encabezado
        Location que se devuelve al crear un método de autenticación. Debe
        usarse tal como está, sin ninguna modificación.
      in: path
      name: authentication_method_id
      required: true
      schema:
        $ref: '#/components/schemas/PathAuthenticationMethodId'
  headers:
    XRateLimitLimitHeader:
      description: El número máximo de solicitudes permitido durante la ventana del límite
      required: true
      schema:
        type: number
    XRateLimitRemainingHeader:
      description: >-
        El número de solicitudes restantes en la ventana actual antes de que se
        rechacen las solicitudes
      required: true
      schema:
        type: number
    XRateLimitResetHeader:
      description: >-
        La hora prevista (como marca de tiempo UNIX, en segundos) en que se
        repondrá el bucket
      required: true
      schema:
        type: number
    RetryAfterHeader:
      description: >-
        La cantidad de segundos que el cliente debe esperar antes de realizar
        una nueva solicitud
      required: true
      schema:
        type: number
    XAuth0ErrorKindHeader:
      description: >-
        Un indicador de que el límite de tasa superado es un límite global (por
        inquilino).
      schema:
        const: global-rate-limit
        type: string
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Entrada no válida según el esquema.
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: No autorizado.
    Forbidden:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Prohibido.
    TooManyRequests:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
      description: Demasiadas solicitudes.
      headers:
        retry-after:
          $ref: '#/components/headers/RetryAfterHeader'
        x-auth0-error-kind:
          $ref: '#/components/headers/XAuth0ErrorKindHeader'
        x-ratelimit-limit:
          $ref: '#/components/headers/XRateLimitLimitHeader'
        x-ratelimit-remaining:
          $ref: '#/components/headers/XRateLimitRemainingHeader'
        x-ratelimit-reset:
          $ref: '#/components/headers/XRateLimitResetHeader'
  schemas:
    PathAuthenticationMethodId:
      type: string
    ErrorResponse:
      additionalProperties: false
      properties:
        detail:
          type: string
        status:
          type: number
        title:
          type: string
        type:
          type: string
        validation_errors:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
      required:
        - type
        - status
        - title
        - detail
      type: object
    ValidationError:
      additionalProperties: false
      properties:
        detail:
          type: string
        field:
          type: string
        pointer:
          type: string
        source:
          type: string
      required:
        - detail
      type: object
  securitySchemes:
    Bearer-DPoP:
      description: >-
        Los tokens Bearer y DPoP son compatibles según la configuración de la
        API
      scheme: bearer
      type: http

````