Как разобраться с кейсом: аутентификация Blazor Server, почему AuthorizeView долго получает данные об аутентификации?

Ссылка скопирована
0 ответов

Сейчас ситуация такая: изучаю 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, но результата это не принесло.

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно