Pular para o conteúdo
ecdsa.com
Microsoft.IdentityModel.Tokens (.NET).NET

Mensagem de erro

IDX10223: Lifetime validation failed. The token is expired.

Também aparece como

  • Bearer error="invalid_token", error_description="The token expired at '10/20/2026 06:28:30'"
  • IDX10222: Lifetime validation failed. The token is not yet valid.

O texto depois de “The token is expired.” contém os dois carimbos de data/hora no formato da cultura do servidor. A descrição no `WWW-Authenticate` do ASP.NET Core é gerada pelo `JwtBearerHandler`.

Microsoft.IdentityModel.Tokens (.NET) — SecurityTokenExpiredException

O que significa

O `exp` do token é anterior à hora atual menos o `ClockSkew` (cinco minutos por padrão). A assinatura e as outras claims podem ser válidas; o token simplesmente passou do tempo de vida. A mensagem continua com “ValidTo (UTC): …, Current time (UTC): …”, e o ASP.NET Core informa `error_description="The token expired at '…'"` ao cliente. O IDX10222 é o caso oposto: o `nbf` está no futuro.

Por que acontece

Como corrigir

  1. 1.

    Manter uma tolerância de relógio pequena

    Tolere diferenças de segundos, não de minutos, e corrija os relógios. Nunca defina `ValidateLifetime = false` em produção.

    csharp
    options.TokenValidationParameters = new TokenValidationParameters
    {
        ValidIssuer = "https://login.example.com/",
        ValidAudience = "api://orders",
        ClockSkew = TimeSpan.FromSeconds(30), // default is 5 minutes; lower it, do not raise it to hide expiry
    };
  2. 2.

    Obter os tokens pela biblioteca a cada chamada

    O `AcquireTokenSilent` retorna um token válido do cache ou o atualiza, então a expiração é tratada antes da requisição.

    csharp
    // Client side (MSAL): ask for a token every time; MSAL returns the cached one or refreshes it.
    var result = await app.AcquireTokenSilent(scopes, account).ExecuteAsync();
    httpClient.DefaultRequestHeaders.Authorization = new("Bearer", result.AccessToken);

Erros relacionados

Ver toda a base de erros de assinatura