feat: logout callback with 'take me to I was' functionality
This commit is contained in:
15
src/index.ts
15
src/index.ts
@@ -14,7 +14,12 @@ export type OidcIntegrationOptions = {
|
||||
issuer: EnvString;
|
||||
clientId: EnvString;
|
||||
scopes?: string; // default "openid email profile"
|
||||
routes?: { login?: string; callback?: string; logout?: string }; // defaults: /login, /oidc/callback, /logout
|
||||
routes?: {
|
||||
login?: string;
|
||||
callback?: string;
|
||||
logout?: string;
|
||||
logoutCallback?: string;
|
||||
}; // defaults: /login, /oidc/callback, /logout, /logout/callback
|
||||
redirectUri?: { mode: "infer-from-request" } | { absolute: string };
|
||||
cookie: {
|
||||
name?: string;
|
||||
@@ -34,7 +39,7 @@ export type OidcInjectedOptions = {
|
||||
clientIdEnv: string;
|
||||
clientIdFallback?: string;
|
||||
scopes: string;
|
||||
routes: { login: string; callback: string; logout: string };
|
||||
routes: { login: string; callback: string; logout: string; logoutCallback: string };
|
||||
redirectUri: { mode: "infer-from-request" } | { absolute: string };
|
||||
cookie: {
|
||||
name: string;
|
||||
@@ -59,6 +64,8 @@ function resolveOptions(user: OidcIntegrationOptions): OidcInjectedOptions {
|
||||
login: user.routes?.login ?? "/login",
|
||||
callback: user.routes?.callback ?? "/oidc/callback",
|
||||
logout: user.routes?.logout ?? "/logout",
|
||||
logoutCallback:
|
||||
user.routes?.logoutCallback ?? `${user.routes?.logout ?? "/logout"}/callback`,
|
||||
};
|
||||
const cookie = {
|
||||
name: user.cookie?.name ?? "oidc_session",
|
||||
@@ -126,6 +133,10 @@ export default function resuelyOidc(
|
||||
pattern: resolved.routes.logout,
|
||||
entrypoint: fileURLToPath(new URL("./routes/logout.js", import.meta.url)),
|
||||
});
|
||||
injectRoute({
|
||||
pattern: resolved.routes.logoutCallback,
|
||||
entrypoint: fileURLToPath(new URL("./routes/logout.js", import.meta.url)),
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user