Bagaimana cara mengganti ekstensi AddJwtBearer di .NET Core 3.0

19

Saya memiliki kode berikut yang mengkompilasi dan bekerja di .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
            };
        });

Di .NET Core 3.0 saya mendapatkan kesalahan:

Kesalahan CS1061 'AuthenticationBuilder' tidak mengandung definisi untuk 'AddJwtBearer' dan tidak ada metode ekstensi yang dapat diakses 'AddJwtBearer' menerima argumen pertama dari jenis 'AuthenticationBuilder' dapat ditemukan (apakah Anda melewatkan direktif menggunakan atau referensi rakitan?)

ketika saya melihat dokumentasi MSFT: https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.dependencyinjection.jwtbearerextensions.addjwtbearer?view=aspnetcore-2.2

dan mencoba untuk sampai ke versi 3.0, Tampaknya ini adalah versi terakhir di mana ini didefinisikan. Bagaimana cara saya memigrasikan AddJwtBearer ke Core 3.0?

shelbypereira
sumber
bagikan file csproject Anda
JeePakaJP

Jawaban:

6

Anda harus menyertakan paket Microsoft.AspNetCore.Authentication.JwtBearer ke proyek Anda.

Mert Sayın
sumber
2
Apakah Anda menggunakan using Microsoft.AspNetCore.Authentication.JwtBearer;di atas?
Mert Sayın
ya saya lakukan, saya tidak berpikir itu sangat sederhana karena dokumentasi MSFT dengan jelas menyatakan bahwa metode ini tidak ada di 3.0. Saya pikir mungkin ada beberapa cara untuk menggunakan Injeksi Ketergantungan pada startup untuk menambahkan JwtBearer tapi saya belum dapat menemukannya di internet.
shelbypereira