dotnet / dotnet/aspnetcore

[Blazor][Wasm] Set oidc Authentication Options to Local Storage

Open
#40,757 23 comments 18 reactions 0 assignees View on GitHub
area-blazor enhancement feature-blazor-wasm feature-blazor-wasm-auth help wanted Pillar: Dev Experience Priority:1 triaged
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 10h
Merged PRs (30d)
281

Description

### Is there an existing issue for this?

- [X] I have searched the existing issues

### Is your feature request related to a problem? Please describe the problem.

There is an existing issue for this but it is closed ([#20574](https://github.com/dotnet/aspnetcore/issues/20574)), I really think this feature is needed to allow the developer to choose where he wants to store. My current problem is that I choose Blazor as my frontend technology and I'm using ElectronJS as my container, I want to be able to allow the user to open multiple windows do make use of multiple monitors. Right now using SessionStorage, every time the user needs to Undock a panel into a separate window it triggers authentication again, I know it does not ask for credentials, it does it silently but it does go through the "Authorizing..." handshake before actually redirecting to the component. That is bad for user experience it is generating a new token in each new window. I tried to remediate this through Electron but it does not work, even populating the sessionStorage with the content of the main window it still goes through the authorization dance.

### Describe the solution you'd like

I want to be able to set the Storage mechanism to be used, just like MsalAuthentication:

`builder.Services.AddMsalAuthentication(options =>
{
options.ProviderOptions.Cache.CacheLocation = "localStorage";
...
});`

so it would be something like:

`builder.Services.AddOidcAuthentication(options =>
{
options.ProviderOptions.Cache.CacheLocation = "localStorage";
...
});`

### Additional context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.