Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Melaksanakan Pelbagai Skim Pengesahan Pembawa JWT dalam ASP.NET Core 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:
Kesilapan biasa ialah memanggil AddAuthentication
tanpa parameter. Untuk berbilang skim pengesahan, anda mesti menggunakan beban lampau menerima parameter rentetan yang mewakili nama skema.
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.
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 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>
Untuk keperluan kebenaran yang rumit, manfaatkan kebenaran berasaskan dasar. Ini membolehkan anda membuat dasar yang menyatakan skim pengesahan dan keperluan tuntutan.
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!