Как разобраться с кейсом: аутентификация Blazor Server, почему AuthorizeView долго получает данные об аутентификации?
Сейчас ситуация такая: изучаю Blazor Server и столкнулся с такой интересной проблемой (фичей не знаю). Есть вот такой компонент header:
<AuthorizeView> <NotAuthorized> <NavLink class="p-4 font-medium hover:bg-(--header-btn-hover)" href="/registration">Вход</NavLink> </NotAuthorized> <Authorized> <li class="main-navigation-list__item flex items-center w-full md:hidden"> <NavLink class="p-4 font-medium hover:bg-(--header-btn-hover) w-full text-center" href="/profile">Профиль</NavLink> </li> <li class="main-navigation-list__item flex items-center w-full md:hidden"> <button class="p-4 font-medium hover:bg-(--header-btn-hover) cursor-pointer w-full text-center" @onclick="@Logout">Выйти</button> </li> //Dropdown menu <details class="dropdown hover:cursor-pointer select-none hidden md:block"> <summary class="p-4 bg-black border-none list-none shadow-none text-(--white-900) font-normal hover:bg-(--header-btn-hover) hover:rounded-none">@authState.User.Identity.Name</summary> <ul class="menu dropdown-content rounded-box z-1 shadow-sm bg-black w-full"> <li class="main-navigation-list__item flex items-center w-full"> @if (NavManager.ToBaseRelativePath(NavManager.Uri) == "profile") { <span class="p-4 font-medium w-full text-center cursor-auto">Профиль</span> } else { <NavLink class="p-4 font-medium hover:bg-(--header-btn-hover) w-full text-center" href="/profile">Профиль</NavLink> } </li> <li class="main-navigation-list__item flex items-center w-full"> <button class="p-4 font-medium hover:bg-(--header-btn-hover) cursor-pointer w-full text-center" @onclick="@Logout">Выйти</button> </li> </ul> </details> </Authorized> </AuthorizeView>
По вводным: данные об аутентификации получаю при инициализации компонента:
protected override async Task OnInitializedAsync() { ClientDownloadUrl = Configuration.GetValue<string>("GameServer:ClientUrl"); authState = await AuthStateProvider.GetAuthenticationStateAsync(); }
По вводным: все бы ничего, все работает нормально, JWT токен сохраняется и считывается с него имя пользователя, НО, каждый раз, когда я обновляю страницу и пользователь уже залогинен, то происходит "мерцание" пункта меню, который отвечает за вывод имени пользователя - сначала показывается надпись "Вход" и только затем она меняется на "имя пользователя".
Сейчас ситуация такая: хотел бы узнать, какие есть способы решения данной проблемы, или это фича? Проверял использовать PersistentComponent, но результата это не принесло.
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос