Konteks

Saya sedang mengerjakan Amankan aplikasi mandiri ASP.NET Core Blazor WebAssembly dengan panduan Azure Active Directory B2C untuk mengaktifkan otentikasi sisi klien di aplikasi Blazor WebAssembly saya (tidak ada komponen sisi server, seluruh aplikasi berjalan di browser). Pengaturan berfungsi seperti yang diharapkan, saya dapat mengarahkan pengguna ke alur pengguna AD B2C, masuk, dan mengarahkan kembali ke aplikasi saya dengan pengguna yang diautentikasi dengan benar.

Masalah

Perilaku autentikasi default mempertahankan token JWT yang diambil dari AD B2C di dalam sessionStorage, yang dihapus segera setelah jendela browser ditutup. Saya ingin menyesuaikan fungsionalitas default ini untuk mempertahankan token ke localStorage untuk sesi autentikasi yang berumur lebih lama—Saya ingin pengguna tetap masuk ke kunjungan berikutnya setelah mereka menutup jendela browser. Dokumen tampaknya tidak memberikan info tentang bagaimana saya bisa mencapai ini.

Saya juga telah melihat Skenario Tambahan dokumen tentang bagaimana RemoteAuthenticatorView dapat disesuaikan, tetapi tidak dapat menemukan info apa pun yang terkait dengan bagaimana ini token disimpan dan diambil.

Saya menghargai panduan apa pun tentang ini!

2
Mark 2 Juli 2020, 19:02

1 menjawab

Jawaban Terbaik

Saya telah mengetahuinya dengan menjelajahi MSAL.js dokumen: ada properti konfigurasi cacheLocation yang dapat disetel ke localStorage, dan Microsoft.Authentication.WebAssembly.Msal.Models.MsalProviderOptions mengekspos properti itu.

Untuk membuatnya berfungsi, saya cukup menambahkan yang berikut ini ke Program.cs:

builder.Services.AddMsalAuthentication(options =>
{
    options.ProviderOptions.Cache.CacheLocation = "localStorage";
    ...
});
7
Mark 2 Juli 2020, 16:28