Very little change in the API.
- The public/silent-sso.html -> to public/silent-sso.htm (without the l1)
- Use
getOidc()
instead orprOidc
(React API)
{% code title="src/oidc.ts" %}
import { createReactOidc } from "oidc-spa/react";
export const {
OidcProvider,
useOidc,
- prOidc,
+ getOidc
} = createReactOidc({ });
-prOidc.then(oidc => { /* ... */ });
+getOidc().then(oidc => { /* ... */ });
{% endcode %}
If you are using the mock with the vanilla API (not React)
import { createOidc } from "oidc-spa";
import { createMockOidc } from "oidc-spa/mock";
import { z } from "zod";
const decodedIdTokenSchema = z.object({
sub: z.string(),
preferred_username: z.string()
});
const publicUrl= import.meta.env.BASE_URL;
const oidc = !import.meta.env.VITE_OIDC_ISSUER
- ? await createMockOidc({
+ ? await createMockOidc({
isUserInitiallyLoggedIn: false,
publicUrl,
mockedTokens: {
decodedIdToken: {
sub: "123",
preferred_username: "john doe"
} satisfies z.infer<typeof decodedIdTokenSchema>
}
})
: await createOidc({
issuerUri: import.meta.env.VITE_OIDC_ISSUER,
clientId: import.meta.env.VITE_OIDC_CLIENT_ID,
publicUrl
});
Footnotes
-
Yes .htm and not .html.
Some web server such as serve will rewrite /silent-sso.html to /silent-sso and serve the index.html of your distribution.
Using the .htm extention prevend any potential issue. ↩