Como substituir a extensão AddJwtBearer no .NET Core 3.0

19

Eu tenho o seguinte código que compila e funciona no .NET Core 2.2:

  byte[] key = Encoding.ASCII.GetBytes(Constants.JWT_SECRET); 
        services.AddAuthentication(x =>
        {
            x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
            x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
        })
        .AddJwtBearer(x =>
        {
            x.RequireHttpsMetadata = false;
            x.SaveToken = true;
            x.TokenValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey = new SymmetricSecurityKey(key),
                ValidateIssuer = false,
                ValidateAudience = false
            };
        });

No .NET Core 3.0, estou recebendo o erro:

O erro CS1061 'AuthenticationBuilder' não contém uma definição para 'AddJwtBearer' e não foi encontrado nenhum método de extensão acessível 'AddJwtBearer' que aceite um primeiro argumento do tipo 'AuthenticationBuilder' (falta uma diretiva de uso ou uma referência de montagem?)

quando olho para a documentação do MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

e tente chegar à versão 3.0, parece que esta é a última versão em que isso está definido. Como migrar o AddJwtBearer para o Core 3.0?

shelbypereira
fonte
compartilhe seu arquivo csproject
JeePakaJP 28/10

Respostas:

6

Você deve incluir o pacote Microsoft.AspNetCore.Authentication.JwtBearer em seu projeto.

Mert Sayın
fonte
2
Você usou using Microsoft.AspNetCore.Authentication.JwtBearer;no topo?
Mert Sayin
sim, acho que não é tão simples, pois a documentação do MSFT afirma claramente que esse método não existe no 3.0. Eu acho que pode haver alguma maneira de usar a injeção de dependência na inicialização para adicionar o JwtBearer, mas não consegui encontrar na internet.
Shelbypereira 28/10/19