Repository navigation
Expand file tree
/
Copy pathconfig.ts
More file actions
59 lines (55 loc) · 2.51 KB
/
Copy pathconfig.ts
File metadata and controls
59 lines (55 loc) · 2.51 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/**
* Copyright (c) 2025, WSO2 LLC. (https://www.wso2.com).
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import {ThunderIDNodeConfig, ThunderIDRuntimeError, TokenResponse} from '@thunderid/node';
import express from 'express';
/**
* Express-specific configuration fields.
*/
export interface StrictExpressClientConfig {
/** Called with the response and token on successful sign-in. */
onSignIn?: (res: express.Response, tokenResponse: TokenResponse) => void;
/** Called with the response on successful sign-out. */
onSignOut?: (res: express.Response) => void;
/** Called with the response and error on authentication failure. */
onError?: (res: express.Response, exception: ThunderIDRuntimeError) => void;
/** Called with the response when a protected route is accessed without a valid session. */
onUnauthenticated?: (res: express.Response) => void;
}
/**
* Full configuration type for `ThunderIDExpressClient`.
* Combines node-level auth config with Express-specific settings.
*
* `afterSignInUrl` and `afterSignOutUrl` are optional. When omitted, the SDK
* infers them from the first incoming request's origin combined with the path
* derived from those URLs (defaulting to `/login` and `/logout`).
*
* Set `mode: 'embedded'` to enable app-native embedded auth via `handleFlow()`.
* Defaults to `'redirect'` (standard OAuth 2.0 authorization-code flow).
*
* Inherits `vendor` and `sessionCookie.name` from `ThunderIDNodeConfig` — set
* either to control the session cookie name written by this SDK (default:
* `__thunderid__session`, the same `@thunderid/node` `CookieConfig` naming
* convention used by every server-side ThunderID SDK, derived from `vendor`
* defaulting to `'thunderid'`). `sessionCookie.name` takes priority over the
* `vendor`-derived default.
*/
export type ExpressClientConfig = ThunderIDNodeConfig & StrictExpressClientConfig;
/**
* Configuration type for the ThunderID Express.js SDK.
*/
export type ThunderIDExpressConfig = ExpressClientConfig;