@axa-fr/react-oidc 6.25.6 → 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +79 -69
- package/dist/FetchToken.d.ts +1 -2
- package/dist/OidcProvider.d.ts +2 -3
- package/dist/OidcSecure.d.ts +1 -2
- package/dist/ReactOidc.d.ts +1 -2
- package/dist/User.d.ts +1 -2
- package/dist/core/default-component/AuthenticateError.component.d.ts +0 -1
- package/dist/core/default-component/Authenticating.component.d.ts +0 -1
- package/dist/core/default-component/Callback.component.d.ts +0 -1
- package/dist/core/default-component/Loading.component.d.ts +0 -1
- package/dist/core/default-component/ServiceWorkerNotSupported.component.d.ts +0 -1
- package/dist/core/default-component/SessionLost.component.d.ts +0 -1
- package/dist/core/default-component/SilentCallback.component.d.ts +0 -1
- package/dist/core/default-component/SilentLogin.component.d.ts +0 -1
- package/dist/core/default-component/index.d.ts +0 -1
- package/dist/core/routes/OidcRoutes.d.ts +0 -1
- package/dist/core/routes/index.d.ts.map +1 -1
- package/dist/core/routes/withRouter.d.ts +0 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +43 -43
- package/dist/index.umd.cjs +10 -10
- package/package.json +3 -11
- package/src/FetchToken.tsx +3 -3
- package/src/OidcProvider.tsx +19 -19
- package/src/OidcSecure.tsx +2 -2
- package/src/ReactOidc.tsx +19 -19
- package/src/User.ts +2 -2
- package/src/core/default-component/Callback.component.tsx +2 -2
- package/src/core/default-component/SilentCallback.component.tsx +2 -2
- package/src/core/default-component/SilentLogin.component.tsx +2 -2
- package/src/core/routes/OidcRoutes.spec.tsx +4 -3
- package/src/core/routes/OidcRoutes.tsx +1 -1
- package/src/core/routes/withRouter.spec.tsx +4 -3
- package/src/index.ts +2 -2
- package/dist/FetchToken.d.ts.map +0 -1
- package/dist/OidcProvider.d.ts.map +0 -1
- package/dist/OidcSecure.d.ts.map +0 -1
- package/dist/ReactOidc.d.ts.map +0 -1
- package/dist/User.d.ts.map +0 -1
- package/dist/core/default-component/AuthenticateError.component.d.ts.map +0 -1
- package/dist/core/default-component/Authenticating.component.d.ts.map +0 -1
- package/dist/core/default-component/Callback.component.d.ts.map +0 -1
- package/dist/core/default-component/Loading.component.d.ts.map +0 -1
- package/dist/core/default-component/ServiceWorkerNotSupported.component.d.ts.map +0 -1
- package/dist/core/default-component/SessionLost.component.d.ts.map +0 -1
- package/dist/core/default-component/SilentCallback.component.d.ts.map +0 -1
- package/dist/core/default-component/SilentLogin.component.d.ts.map +0 -1
- package/dist/core/default-component/index.d.ts.map +0 -1
- package/dist/core/routes/OidcRoutes.d.ts.map +0 -1
- package/dist/core/routes/withRouter.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,13 +1,21 @@
|
|
|
1
1
|
# @axa-fr/react-oidc
|
|
2
2
|
|
|
3
|
-
[](https://github.com/AxaFrance/react-oidc/actions/workflows/npm-publish.yml)
|
|
4
4
|
[](https://sonarcloud.io/dashboard?id=AxaGuilDEv_react-oidc) [](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=reliability_rating) [](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=security_rating) [](https://sonarcloud.io/component_measures?id=AxaGuilDEv_react-oidc&metric=Coverage) [](https://twitter.com/intent/follow?screen_name=GuildDEvOpen)
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
**@axa-fr/oidc-client** the lightest and securest library to manage authentication with OpenID Connect (OIDC) and OAuth2 protocol. It is compatible with all OIDC providers.
|
|
7
|
+
**@axa-fr/oidc-client** is a pure javascript library. It works with any JavaScript framework or library.
|
|
7
8
|
|
|
8
|
-
|
|
9
|
+
We provide a wrapper **@axa-fr/react-oidc** for **React** (compatible next.js) and we expect soon to provide one for **Vue**, **Angular** and **Svelte**.
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
- Try the react demo at https://black-rock-0dc6b0d03.1.azurestaticapps.net/ (most advanced)
|
|
12
|
+
- Try the pure javascript demo at https://icy-glacier-004ab4303.2.azurestaticapps.net/
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<img src="https://github.com/AxaFrance/react-oidc/blob/master/docs/img/introduction.gif?raw=true"
|
|
16
|
+
alt="Sample React Oicd"
|
|
17
|
+
/>
|
|
18
|
+
</p>
|
|
11
19
|
|
|
12
20
|
- [About](#about)
|
|
13
21
|
- [Getting Started](#getting-started)
|
|
@@ -20,22 +28,21 @@ A set of react components to make OIDC (OpenID Connect) client easy. It aim to s
|
|
|
20
28
|
|
|
21
29
|
## About
|
|
22
30
|
|
|
23
|
-
|
|
24
|
-
It is a real alternative to existing oidc-client libraries.
|
|
31
|
+
@axa-fr/react is:
|
|
25
32
|
|
|
26
33
|
- **Secure** :
|
|
27
|
-
- With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against
|
|
28
|
-
- OIDC using client side Code Credential Grant with
|
|
29
|
-
- **Lightweight**
|
|
30
|
-
- **Simple**
|
|
34
|
+
- With the use of Service Worker, your tokens (refresh_token and access_token) are not accessible to the JavaScript client code (big protection against XSS attacks)
|
|
35
|
+
- OIDC using client side Code Credential Grant with pkce only
|
|
36
|
+
- **Lightweight** : Unpacked Size on npm is **274 kB**
|
|
37
|
+
- **Simple**
|
|
31
38
|
- refresh_token and access_token are auto refreshed in background
|
|
32
|
-
- with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure
|
|
33
|
-
- **No cookies problem** : You can disable silent signin (that internally use an iframe). For your information, your OIDC server should be in the same domain of your website in order to be able to send OIDC server cookies from your website via an internal IFRAME, else, you may encounter COOKIES problem.
|
|
39
|
+
- with the use of the Service Worker, you do not need to inject the access_token in every fetch, you have only to configure OidcTrustedDomains.js file
|
|
34
40
|
- **Multiple Authentication** :
|
|
35
41
|
- You can authenticate many times to the same provider with different scope (for example you can acquire a new 'payment' scope for a payment)
|
|
36
42
|
- You can authenticate to multiple different providers inside the same SPA (single page application) website
|
|
37
43
|
- **Flexible** :
|
|
38
|
-
- Work with Service Worker (more secure) and without for older browser (less secure)
|
|
44
|
+
- Work with Service Worker (more secure) and without for older browser (less secure).
|
|
45
|
+
- You can disable Service Worker if you want (but less secure) and just use SessionStorage or LocalStorage mode.
|
|
39
46
|
|
|
40
47
|

|
|
41
48
|
|
|
@@ -63,23 +70,32 @@ The only file you should edit is "OidcTrustedDomains.js".
|
|
|
63
70
|
|
|
64
71
|
// Domains used by OIDC server must be also declared here
|
|
65
72
|
const trustedDomains = {
|
|
66
|
-
default:
|
|
73
|
+
default: {
|
|
74
|
+
oidcDomains :["https://demo.duendesoftware.com"],
|
|
75
|
+
accessTokenDomains : ["https://www.myapi.com/users"]
|
|
76
|
+
},
|
|
67
77
|
};
|
|
68
78
|
|
|
69
79
|
// Service worker will continue to give access token to the JavaScript client
|
|
70
80
|
// Ideal to hide refresh token from client JavaScript, but to retrieve access_token for some
|
|
71
81
|
// scenarios which require it. For example, to send it via websocket connection.
|
|
72
|
-
trustedDomains.config_show_access_token = {
|
|
82
|
+
trustedDomains.config_show_access_token = {
|
|
83
|
+
oidcDomains :["https://demo.duendesoftware.com"],
|
|
84
|
+
accessTokenDomains : ["https://www.myapi.com/users"],
|
|
85
|
+
showAccessToken: true
|
|
86
|
+
};
|
|
73
87
|
|
|
74
88
|
```
|
|
75
89
|
|
|
76
90
|
## Run The Demo
|
|
77
91
|
|
|
78
92
|
```sh
|
|
79
|
-
git clone https://github.com/
|
|
80
|
-
cd
|
|
81
|
-
|
|
82
|
-
|
|
93
|
+
git clone https://github.com/AxaFrance/oidc-client.git
|
|
94
|
+
cd oidc-client
|
|
95
|
+
pnpm install
|
|
96
|
+
cd /examples/react-oidc-demo
|
|
97
|
+
pnpm install
|
|
98
|
+
pnpm start
|
|
83
99
|
# then navigate to http://localhost:4200
|
|
84
100
|
```
|
|
85
101
|
|
|
@@ -111,7 +127,7 @@ const configuration = {
|
|
|
111
127
|
window.location.origin + "/authentication/silent-callback",
|
|
112
128
|
scope: "openid profile email api offline_access", // offline_access scope allow your client to retrieve the refresh_token
|
|
113
129
|
authority: "https://demo.duendesoftware.com",
|
|
114
|
-
service_worker_relative_url: "/OidcServiceWorker.js",
|
|
130
|
+
service_worker_relative_url: "/OidcServiceWorker.js", // just comment that line to disable service worker mode
|
|
115
131
|
service_worker_only: false,
|
|
116
132
|
};
|
|
117
133
|
|
|
@@ -128,49 +144,50 @@ render(<App />, document.getElementById("root"));
|
|
|
128
144
|
```
|
|
129
145
|
|
|
130
146
|
```javascript
|
|
131
|
-
const
|
|
132
|
-
loadingComponent:
|
|
133
|
-
sessionLostComponent:
|
|
134
|
-
authenticating:
|
|
135
|
-
authenticatingErrorComponent:
|
|
136
|
-
callbackSuccessComponent:
|
|
137
|
-
serviceWorkerNotSupportedComponent:
|
|
138
|
-
onSessionLost:
|
|
139
|
-
configuration:
|
|
140
|
-
client_id:
|
|
141
|
-
redirect_uri:
|
|
142
|
-
silent_redirect_uri:
|
|
143
|
-
silent_login_uri:
|
|
144
|
-
silent_login_timeout:
|
|
145
|
-
scope:
|
|
146
|
-
authority:
|
|
147
|
-
storage: Storage, // Default sessionStorage, you can set localStorage but it is less secure
|
|
148
|
-
authority_configuration:
|
|
149
|
-
// Optional for providers that
|
|
150
|
-
authorization_endpoint:
|
|
151
|
-
token_endpoint:
|
|
152
|
-
userinfo_endpoint:
|
|
153
|
-
end_session_endpoint:
|
|
154
|
-
revocation_endpoint:
|
|
155
|
-
check_session_iframe:
|
|
156
|
-
issuer:
|
|
157
|
-
}
|
|
158
|
-
refresh_time_before_tokens_expiration_in_second:
|
|
159
|
-
service_worker_relative_url:
|
|
160
|
-
service_worker_only:
|
|
161
|
-
service_worker_convert_all_requests_to_cors:
|
|
162
|
-
extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that
|
|
163
|
-
token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that
|
|
164
|
-
withCustomHistory:
|
|
165
|
-
authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in
|
|
166
|
-
authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in
|
|
167
|
-
monitor_session:
|
|
168
|
-
onLogoutFromAnotherTab: Function, // Optional, can be set to override the default behavior, this function is triggered when user with the same subject is logged out from another tab when session_monitor is active
|
|
169
|
-
onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when user is logged out from same tab when session_monitor is active
|
|
170
|
-
token_renew_mode:
|
|
171
|
-
logout_tokens_to_invalidate
|
|
172
|
-
}
|
|
147
|
+
const configuration = {
|
|
148
|
+
loadingComponent: ReactComponent, // you can inject your own loading component
|
|
149
|
+
sessionLostComponent: ReactComponent, // you can inject your own session lost component
|
|
150
|
+
authenticating: ReactComponent, // you can inject your own authenticating component
|
|
151
|
+
authenticatingErrorComponent: ReactComponent,
|
|
152
|
+
callbackSuccessComponent: ReactComponent, // you can inject your own call back success component
|
|
153
|
+
serviceWorkerNotSupportedComponent: ReactComponent, // you can inject your page that explains you require a more modern browser
|
|
154
|
+
onSessionLost: Function, // If set, "sessionLostComponent" is not displayed, and onSessionLost callback is called instead
|
|
155
|
+
configuration: {
|
|
156
|
+
client_id: String.isRequired, // oidc client id
|
|
157
|
+
redirect_uri: String.isRequired, // oidc redirect url
|
|
158
|
+
silent_redirect_uri: String, // Optional activate silent-signin that use cookies between OIDC server and client javascript to restore sessions
|
|
159
|
+
silent_login_uri: String, // Optional, route that triggers the signin
|
|
160
|
+
silent_login_timeout: Number, // Optional, default is 12000 milliseconds
|
|
161
|
+
scope: String.isRequired, // oidc scope (you need to set "offline_access")
|
|
162
|
+
authority: String.isRequired,
|
|
163
|
+
storage: Storage, // Default sessionStorage, you can set localStorage, but it is less secure against XSS attacks
|
|
164
|
+
authority_configuration: {
|
|
165
|
+
// Optional for providers that do not implement OIDC server auto-discovery via a .wellknown URL
|
|
166
|
+
authorization_endpoint: String,
|
|
167
|
+
token_endpoint: String,
|
|
168
|
+
userinfo_endpoint: String,
|
|
169
|
+
end_session_endpoint: String,
|
|
170
|
+
revocation_endpoint: String,
|
|
171
|
+
check_session_iframe: String,
|
|
172
|
+
issuer: String,
|
|
173
|
+
},
|
|
174
|
+
refresh_time_before_tokens_expiration_in_second: Number, // default is 120 seconds
|
|
175
|
+
service_worker_relative_url: String,
|
|
176
|
+
service_worker_only: Boolean, // default false
|
|
177
|
+
service_worker_convert_all_requests_to_cors: Boolean, // force all requests that service worker upgrades to have 'cors' mode. This allows setting an authentication token on requests initiated by HTML parsing (e.g., img tags, download links, etc.).
|
|
178
|
+
extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server (more info: https://github.com/openid/AppAuth-JS)
|
|
179
|
+
token_request_extras: StringMap | undefined, // ex: {'prompt': 'consent', 'access_type': 'offline'} list of key/value that is sent to the OIDC server during token request (more info: https://github.com/openid/AppAuth-JS)
|
|
180
|
+
withCustomHistory: Function, // Override history modification, return an instance with replaceState(url, stateHistory) implemented (like History.replaceState())
|
|
181
|
+
authority_time_cache_wellknowurl_in_second: 60 * 60, // Time to cache in seconds of the openid well-known URL, default is 1 hour
|
|
182
|
+
authority_timeout_wellknowurl_in_millisecond: 10000, // Timeout in milliseconds of the openid well-known URL, default is 10 seconds, then an error is thrown
|
|
183
|
+
monitor_session: Boolean, // Add OpenID monitor session, default is false (more information https://openid.net/specs/openid-connect-session-1_0.html), if you need to set it to true consider https://infi.nl/nieuws/spa-necromancy/
|
|
184
|
+
onLogoutFromAnotherTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user with the same subject is logged out from another tab when session_monitor is active
|
|
185
|
+
onLogoutFromSameTab: Function, // Optional, can be set to override the default behavior, this function is triggered when a user is logged out from the same tab when session_monitor is active
|
|
186
|
+
token_renew_mode: String, // Optional, update tokens based on the selected token(s) lifetime: "access_token_or_id_token_invalid" (default), "access_token_invalid", "id_token_invalid"
|
|
187
|
+
logout_tokens_to_invalidate: Array<string>, // Optional tokens to invalidate during logout, default: ['access_token', 'refresh_token']
|
|
188
|
+
}.isRequired,
|
|
173
189
|
};
|
|
190
|
+
|
|
174
191
|
```
|
|
175
192
|
|
|
176
193
|
## How to consume
|
|
@@ -626,10 +643,3 @@ export const configurationIdentityServerWithHash = {
|
|
|
626
643
|
service_worker_only: false,
|
|
627
644
|
};
|
|
628
645
|
```
|
|
629
|
-
|
|
630
|
-
## Service Worker Support
|
|
631
|
-
|
|
632
|
-
- Firefox : tested on Firefox 98.0.2
|
|
633
|
-
- Chrome/Edge : tested on version upper to 90
|
|
634
|
-
- Opera : tested on version upper to 80
|
|
635
|
-
- Safari : tested on Safari/605.1.15
|
package/dist/FetchToken.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Fetch } from '@axa-fr/
|
|
1
|
+
import { Fetch } from '@axa-fr/oidc-client';
|
|
2
2
|
export interface ComponentWithOidcFetchProps {
|
|
3
3
|
fetch?: Fetch;
|
|
4
4
|
}
|
|
@@ -6,4 +6,3 @@ export declare const withOidcFetch: (fetch?: Fetch, configurationName?: string)
|
|
|
6
6
|
export declare const useOidcFetch: (fetch?: Fetch, configurationName?: string) => {
|
|
7
7
|
fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=FetchToken.d.ts.map
|
package/dist/OidcProvider.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Fetch, OidcConfiguration,
|
|
1
|
+
import { Fetch, OidcConfiguration, OidcClient } from '@axa-fr/oidc-client';
|
|
2
2
|
import { ComponentType, FC, PropsWithChildren } from 'react';
|
|
3
3
|
import { CustomHistory } from './core/routes/withRouter.js';
|
|
4
4
|
export type oidcContext = {
|
|
5
|
-
(name?: string):
|
|
5
|
+
(name?: string): OidcClient;
|
|
6
6
|
};
|
|
7
7
|
export type OidcProviderProps = {
|
|
8
8
|
callbackSuccessComponent?: ComponentType<any>;
|
|
@@ -27,4 +27,3 @@ export type OidcSessionProps = {
|
|
|
27
27
|
};
|
|
28
28
|
export declare const OidcProvider: FC<PropsWithChildren<OidcProviderProps>>;
|
|
29
29
|
export default OidcProvider;
|
|
30
|
-
//# sourceMappingURL=OidcProvider.d.ts.map
|
package/dist/OidcSecure.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringMap } from '@axa-fr/
|
|
1
|
+
import { StringMap } from '@axa-fr/oidc-client';
|
|
2
2
|
import { FC, PropsWithChildren } from 'react';
|
|
3
3
|
export type OidcSecureProps = {
|
|
4
4
|
callbackPath?: string;
|
|
@@ -7,4 +7,3 @@ export type OidcSecureProps = {
|
|
|
7
7
|
};
|
|
8
8
|
export declare const OidcSecure: FC<PropsWithChildren<OidcSecureProps>>;
|
|
9
9
|
export declare const withOidcSecure: (WrappedComponent: FC<PropsWithChildren<OidcSecureProps>>, callbackPath?: any, extras?: any, configurationName?: string) => (props: any) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
//# sourceMappingURL=OidcSecure.d.ts.map
|
package/dist/ReactOidc.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { StringMap } from '@axa-fr/
|
|
1
|
+
import { StringMap } from '@axa-fr/oidc-client';
|
|
2
2
|
export declare const useOidc: (configurationName?: string) => {
|
|
3
3
|
login: (callbackPath?: string | undefined, extras?: StringMap, silentLoginOnly?: boolean) => Promise<unknown>;
|
|
4
4
|
logout: (callbackPath?: string | null | undefined, extras?: StringMap) => Promise<void>;
|
|
@@ -15,4 +15,3 @@ export type OidcIdToken = {
|
|
|
15
15
|
idTokenPayload?: any;
|
|
16
16
|
};
|
|
17
17
|
export declare const useOidcIdToken: (configurationName?: string) => OidcIdToken;
|
|
18
|
-
//# sourceMappingURL=ReactOidc.d.ts.map
|
package/dist/User.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type OidcUserInfo } from '@axa-fr/
|
|
1
|
+
import { type OidcUserInfo } from '@axa-fr/oidc-client';
|
|
2
2
|
export declare enum OidcUserStatus {
|
|
3
3
|
Unauthenticated = "Unauthenticated",
|
|
4
4
|
Loading = "Loading user",
|
|
@@ -14,4 +14,3 @@ export declare const useOidcUser: <T extends OidcUserInfo = OidcUserInfo>(config
|
|
|
14
14
|
oidcUserLoadingState: OidcUserStatus;
|
|
15
15
|
reloadOidcUser: () => void;
|
|
16
16
|
};
|
|
17
|
-
//# sourceMappingURL=User.d.ts.map
|
|
@@ -4,4 +4,3 @@ export { default as Callback, CallBackSuccess } from './Callback.component.js';
|
|
|
4
4
|
export { default as Loading } from './Loading.component.js';
|
|
5
5
|
export { default as ServiceWorkerNotSupported } from './ServiceWorkerNotSupported.component.js';
|
|
6
6
|
export { default as SessionLost } from './SessionLost.component.js';
|
|
7
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/routes/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,5 @@ export { OidcProvider } from './OidcProvider.js';
|
|
|
3
3
|
export { OidcSecure, withOidcSecure } from './OidcSecure.js';
|
|
4
4
|
export { useOidc, useOidcAccessToken, useOidcIdToken } from './ReactOidc.js';
|
|
5
5
|
export { OidcUserStatus, useOidcUser } from './User.js';
|
|
6
|
-
export type { AuthorityConfiguration, Fetch, OidcConfiguration, StringMap, } from '@axa-fr/
|
|
7
|
-
export { type OidcUserInfo, TokenRenewMode } from '@axa-fr/
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
6
|
+
export type { AuthorityConfiguration, Fetch, OidcConfiguration, StringMap, } from '@axa-fr/oidc-client';
|
|
7
|
+
export { type OidcUserInfo, TokenRenewMode } from '@axa-fr/oidc-client';
|