Thank you for clarifying this :)
I see, thank you for answering.
We noticed in our application that it loads the page pretty quickly first, but non-interactive, then after some seconds, loads the application WebAssembly which is interactive. This is, as far as I've understood, the pre-rendering showing a non-interactive server-side rendered version of the page as a placeholder while the client application is loading.
Is there a way to skip the step of fetching everything twice, first on the server and then on the client? Users mistake the prerendered page to be a broken page that is not working. We are currently doing all loading of data in the OnInitializedAsync lifecycle method.
Also, is it very complex to convert form an ABP Blazor WebApp to ABP Blazor WASM, and do you have any guide for doing so?
Hello!
I created a brand new Blazor WebApp application using ABP Studio. By default, the rendermode in App.razor is set to @rendermode="InteractiveAuto".
However, I want to use this rendermode instead @rendermode="new InteractiveWebAssemblyRenderMode(prerender: false)". After doing the change in App.razor I am not able to run run the application without getting an error when browsing the page (https://localhost:44301/).
blazor.web.js:1 ManagedError: One or more errors occurred. (An error occurred during the initialize Volo.Abp.Modularity.OnApplicationInitializationModuleLifecycleContributor phase of the module Volo.Abp.AspNetCore.Components.WebAssembly.AbpAspNetCoreComponentsWebAssemblyModule, Volo.Abp.AspNetCore.Components.WebAssembly, Version=9.1.1.0, Culture=neutral, PublicKeyToken=null: Could not find 'abp.utils.removeOidcUser' ('abp' was undefined).
Error: Could not find 'abp.utils.removeOidcUser' ('abp' was undefined).
at blazor.web.js:1:384
at Array.forEach (<anonymous>)
at l.findFunction (blazor.web.js:1:352)
at _ (blazor.web.js:1:5101)
at blazor.web.js:1:2894
at new Promise (<anonymous>)
at w.beginInvokeJSFromDotNet (blazor.web.js:1:2857)
at Object.jr [as invokeJSJson] (blazor.web.js:1:165356)
at invoke-js.ts:319:31
at Fc (:44301/_framework/do…eption for details.)
at blazor.web.js:1:384
at Array.forEach (<anonymous>)
at l.findFunction (blazor.web.js:1:352)
at _ (blazor.web.js:1:5101)
at blazor.web.js:1:2894
at new Promise (<anonymous>)
at w.beginInvokeJSFromDotNet (blazor.web.js:1:2857)
at Object.jr [as invokeJSJson] (blazor.web.js:1:165356)
at invoke-js.ts:319:31
at Fc (:44301/_framework/do…eption for details.)
at an (marshal-to-js.ts:420:18)
at Kt.resolve_or_reject (marshal-to-js.ts:315:28)
at marshal-to-js.ts:363:16
at marshal-to-js.ts:341:48
at fr (invoke-js.ts:523:9)
at Fc (marshal-to-js.ts:341:5)
at 00b5b776:0x1f1a4
at 00b5b776:0x1c8ae
at 00b5b776:0xea19
at 00b5b776:0x1ec88
callEntryPoint @ blazor.web.js:1
await in callEntryPoint
Hr @ blazor.web.js:1
await in Hr
Fr @ blazor.web.js:1
startWebAssemblyIfNotStarted @ blazor.web.js:1
resolveRendererIdForDescriptor @ blazor.web.js:1
determinePendingOperation @ blazor.web.js:1
refreshRootComponents @ blazor.web.js:1
(anonymous) @ blazor.web.js:1
setTimeout
rootComponentsMayRequireRefresh @ blazor.web.js:1
onDocumentUpdated @ blazor.web.js:1
Hi @ blazor.web.js:1
@rendermode="InteractiveAuto" to @rendermode="new InteractiveWebAssemblyRenderMode(prerender: false)" in App.razorAlright great, thanks!
Great, thanks for the quick response!
May I ask where I access the Openiddict Application page? Is it available at a spesific endpoint of the hosted auth server?
Hello!
We are currently using your OpenIdDict module in our AuthServer. I want to set the access token lifetime differently for my web application and app.
I see in you you can set the lifetime globally like this: (https://abp.io/docs/latest/modules/openiddict#setting-tokens-lifetime)
PreConfigure(builder =>
{
builder.SetAuthorizationCodeLifetime(TimeSpan.FromMinutes(30));
builder.SetAccessTokenLifetime(TimeSpan.FromMinutes(30));
builder.SetIdentityTokenLifetime(TimeSpan.FromMinutes(30));
});
I found this issue: https://github.com/abpframework/abp/issues/16529
However, the post is two years old and I am wondering whether ABP's OpenIdDict module now offers a an out-of-the-box way to set access token lifetime differently per client?
Best regards, Magnus