Blazor自定义AuthenticationStateAncy启动后调用失败,原因是JavaScript
我有一个Blazor服务器端程序,在那里我通过从JavaScript读取令牌实现了自己的身份验证 工作正常-除了在启动时,读取失败(当然,因为服务器端渲染需要OnAfterRender才能调用JavaScript) 但在这里,代码由Blazor自己执行并抛出异常 如何修复此问题,即此调用不会在其他运行时(渲染后)进行或运行Blazor自定义AuthenticationStateAncy启动后调用失败,原因是JavaScript,blazor,Blazor,我有一个Blazor服务器端程序,在那里我通过从JavaScript读取令牌实现了自己的身份验证 工作正常-除了在启动时,读取失败(当然,因为服务器端渲染需要OnAfterRender才能调用JavaScript) 但在这里,代码由Blazor自己执行并抛出异常 如何修复此问题,即此调用不会在其他运行时(渲染后)进行或运行 ThxJSInterop只能在应用程序呈现之后才能访问,而不是之前。 要解决此问题,需要从组件的OnAfterRender或OnAfterRenderAsyn方法调用Toke
ThxJSInterop只能在应用程序呈现之后才能访问,而不是之前。 要解决此问题,需要从组件的OnAfterRender或OnAfterRenderAsyn方法调用TokenStorageService.GetToken。下面是一段代码片段,用于演示以下内容:
@page "/mypage"
@inject TokenStorageService tokenService
@code{
protected override async Task OnAfterRenderAsyn (bool firstRender)
{
// Ensure that the app has been rendered, and it is the first
// render. Note also that this code is only executed once. And it
// won't be executed on recurring calls to the OnAfterRenderAsyn.
// This makes it an ideal place to initialize JavaScript objects.
if(firstRender)
{
var token = await TokenStorageService.GetToken();
}
}
}
是的,谢谢你的回复。我已经知道这一点,但正如您在屏幕截图中看到的,代码来自内部Blazor“Host.ExecuteAsync”。。。所以我什么都处理不了。这可能是因为我使用CascadingAuthenticationState,但我需要使用登录功能。。。