msal-with-nuxt3
msal-with-nuxt3 copied to clipboard
Cannot stringify arbitrary non-POJOs PublicClientApplication
I am getting this error: Cannot stringify arbitrary non-POJOs PublicClientApplication
It's not liking the useState composable being used with something that returns functions and isn't serializable.
Stated in the docs: Because the data inside useState will be serialized to JSON, it is important that it does not contain anything that cannot be serialized, such as classes, functions or symbols.
How do I get around this?
I fixed it by creating a singleton class of IPublicClientApplication.
In useMSAuth.ts change the line of code with the useState to:
let msalInstance = PublicClientApplicationSingleton.create(msalConfig);
Create a singleton class of IPublicClientApplication like so: `export class PublicClientApplicationSingleton { private static _instance: IPublicClientApplication;
public static create(configuration: Configuration) {
if(PublicClientApplicationSingleton._instance == null) {
PublicClientApplicationSingleton._instance = new PublicClientApplication(configuration);
}
return PublicClientApplicationSingleton._instance;
}
}`
the singleton class didn't work for me.
You can include ssr: false
in your nuxt.config.ts
to remove the POJO error.