Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Pelbagai Skim Pengesahan Pembawa JWT dalam ASP.NET Core 2?

Bagaimanakah Saya Boleh Melaksanakan Pelbagai Skim Pengesahan Pembawa JWT dalam ASP.NET Core 2?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-12 06:52:43869semak imbas

How Can I Implement Multiple JWT Bearer Authentication Schemes in ASP.NET Core 2?

Melaksanakan Pengesahan Pembawa JWT Berbilang dalam Teras ASP.NET 2

Cabaran: Bagaimanakah kita boleh mendayakan akses API daripada berbilang perkhidmatan luaran menggunakan pengeluar token JWT yang berbeza dalam ASP.NET Core 2? Khususnya, kami perlu menyokong pengesahan daripada Firebase dan pembekal JWT tersuai.

Penyelesaian: Fleksibiliti ASP.NET Core membolehkan untuk mengkonfigurasi berbilang skim pengesahan, sekali gus membolehkan pengesahan daripada pelbagai sumber JWT. Begini caranya:

Menggunakan AddAuthentication dengan betul

Kesilapan biasa ialah memanggil AddAuthentication tanpa parameter. Untuk berbilang skim pengesahan, anda mesti menggunakan beban lampau menerima parameter rentetan yang mewakili nama skema.

Mengkonfigurasi Berbilang Skim Pembawa JWT

Gunakan AddJwtBearer beberapa kali, sekali untuk setiap skim pengesahan (cth., "Firebase" dan "Tersuai"). Dalam setiap panggilan, nyatakan Authority dan TokenValidationParameters khusus untuk setiap pengeluar JWT.

Mengubah suai Dasar Keizinan Lalai

Dasar pengesahan lalai perlu dikemas kini untuk menampung berbilang skim. Gunakan AddAuthorization untuk mengkonfigurasi dasar, termasuk DefaultPolicy. Pastikan kedua-dua skim "Firebase" dan "Tersuai" disertakan dalam DefaultPolicy.

Contoh Kod

Contoh ini menunjukkan konfigurasi yang betul:

<code class="language-csharp">services
    .AddAuthentication()
    .AddJwtBearer("Firebase", options =>
    {
        // Configure Firebase JWT authentication settings here
    })
    .AddJwtBearer("Custom", options =>
    {
        // Configure Custom JWT authentication settings here
    });

services
    .AddAuthorization(options =>
    {
        options.DefaultPolicy = new AuthorizationPolicyBuilder()
            .RequireAuthenticatedUser()
            .AddAuthenticationSchemes("Firebase", "Custom")
            .Build();
    });</code>

Senario Keizinan Terperinci

Untuk keperluan kebenaran yang rumit, manfaatkan kebenaran berasaskan dasar. Ini membolehkan anda membuat dasar yang menyatakan skim pengesahan dan keperluan tuntutan.

.NET Core 6 and Beyond

Versi Teras .NET yang lebih baharu memerlukan skim pengesahan lalai untuk dinyatakan dalam AddAuthentication.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pelbagai Skim Pengesahan Pembawa JWT dalam ASP.NET Core 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn