@multiplatform.one/keycloak 1.0.4 → 1.0.6
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/dist/cjs/Authenticated.js +52 -0
- package/dist/cjs/Authenticated.js.map +6 -0
- package/dist/cjs/Authenticated.native.js +90 -0
- package/dist/cjs/Authenticated.native.js.map +6 -0
- package/dist/cjs/apollo.js +64 -0
- package/dist/cjs/apollo.js.map +6 -0
- package/dist/cjs/apollo.native.js +95 -0
- package/dist/cjs/apollo.native.js.map +6 -0
- package/dist/cjs/authConfig.js +24 -0
- package/dist/cjs/authConfig.js.map +6 -0
- package/dist/cjs/authConfig.native.js +28 -0
- package/dist/cjs/authConfig.native.js.map +6 -0
- package/dist/cjs/hooks/index.js +17 -0
- package/dist/cjs/hooks/index.js.map +6 -0
- package/dist/cjs/hooks/index.native.js +23 -0
- package/dist/cjs/hooks/index.native.js.map +6 -0
- package/dist/cjs/hooks/useAuthConfig.js +24 -0
- package/dist/cjs/hooks/useAuthConfig.js.map +6 -0
- package/dist/cjs/hooks/useAuthConfig.native.js +28 -0
- package/dist/cjs/hooks/useAuthConfig.native.js.map +6 -0
- package/dist/cjs/hooks/useTokensFromQuery/index.js +28 -0
- package/dist/cjs/hooks/useTokensFromQuery/index.js.map +6 -0
- package/dist/cjs/hooks/useTokensFromQuery/index.native.js +27 -0
- package/dist/cjs/hooks/useTokensFromQuery/index.native.js.map +6 -0
- package/dist/cjs/hooks/useTokensFromState.js +25 -0
- package/dist/cjs/hooks/useTokensFromState.js.map +6 -0
- package/dist/cjs/hooks/useTokensFromState.native.js +29 -0
- package/dist/cjs/hooks/useTokensFromState.native.js.map +6 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +33 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/cjs/keycloak/config.js +27 -0
- package/dist/cjs/keycloak/config.js.map +6 -0
- package/dist/cjs/keycloak/config.native.js +30 -0
- package/dist/cjs/keycloak/config.native.js.map +6 -0
- package/dist/cjs/keycloak/context.js +23 -0
- package/dist/cjs/keycloak/context.js.map +6 -0
- package/dist/cjs/keycloak/context.native.js +26 -0
- package/dist/cjs/keycloak/context.native.js.map +6 -0
- package/dist/cjs/keycloak/index.js +16 -0
- package/dist/cjs/keycloak/index.js.map +6 -0
- package/dist/cjs/keycloak/index.native.js +21 -0
- package/dist/cjs/keycloak/index.native.js.map +6 -0
- package/dist/cjs/keycloak/keycloak.js +134 -0
- package/dist/cjs/keycloak/keycloak.js.map +6 -0
- package/dist/cjs/keycloak/keycloak.native.js +369 -0
- package/dist/cjs/keycloak/keycloak.native.js.map +6 -0
- package/dist/cjs/provider/AfterAuth.js +37 -0
- package/dist/cjs/provider/AfterAuth.js.map +6 -0
- package/dist/cjs/provider/AfterAuth.native.js +55 -0
- package/dist/cjs/provider/AfterAuth.native.js.map +6 -0
- package/dist/cjs/provider/AuthProvider/AuthProvider.js +175 -0
- package/dist/cjs/provider/AuthProvider/AuthProvider.js.map +6 -0
- package/dist/cjs/provider/AuthProvider/AuthProvider.native.js +414 -0
- package/dist/cjs/provider/AuthProvider/AuthProvider.native.js.map +6 -0
- package/dist/cjs/provider/AuthProvider/index.js +15 -0
- package/dist/cjs/provider/AuthProvider/index.js.map +6 -0
- package/dist/cjs/provider/AuthProvider/index.native.js +19 -0
- package/dist/cjs/provider/AuthProvider/index.native.js.map +6 -0
- package/dist/cjs/provider/KeycloakProvider.js +45 -0
- package/dist/cjs/provider/KeycloakProvider.js.map +6 -0
- package/dist/cjs/provider/KeycloakProvider.native.js +49 -0
- package/dist/cjs/provider/KeycloakProvider.native.js.map +6 -0
- package/dist/cjs/provider/index.js +17 -0
- package/dist/cjs/provider/index.js.map +6 -0
- package/dist/cjs/provider/index.native.js +23 -0
- package/dist/cjs/provider/index.native.js.map +6 -0
- package/dist/cjs/routes.js +136 -0
- package/dist/cjs/routes.js.map +6 -0
- package/dist/cjs/routes.native.js +395 -0
- package/dist/cjs/routes.native.js.map +6 -0
- package/dist/cjs/session/index.js +15 -0
- package/dist/cjs/session/index.js.map +6 -0
- package/dist/cjs/session/index.native.js +19 -0
- package/dist/cjs/session/index.native.js.map +6 -0
- package/dist/cjs/session/session.js +49 -0
- package/dist/cjs/session/session.js.map +6 -0
- package/dist/cjs/session/session.native.js +157 -0
- package/dist/cjs/session/session.native.js.map +6 -0
- package/dist/cjs/state.js +35 -0
- package/dist/cjs/state.js.map +6 -0
- package/dist/cjs/state.native.js +36 -0
- package/dist/cjs/state.native.js.map +6 -0
- package/dist/cjs/token.js +30 -0
- package/dist/cjs/token.js.map +6 -0
- package/dist/cjs/token.native.js +35 -0
- package/dist/cjs/token.native.js.map +6 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/types.js.map +6 -0
- package/dist/cjs/types.native.js +14 -0
- package/dist/cjs/types.native.js.map +6 -0
- package/dist/esm/Authenticated.js +34 -0
- package/dist/esm/Authenticated.js.map +6 -0
- package/dist/esm/Authenticated.mjs +48 -0
- package/dist/esm/Authenticated.native.js +67 -0
- package/dist/esm/Authenticated.native.js.map +6 -0
- package/dist/esm/apollo.js +49 -0
- package/dist/esm/apollo.js.map +6 -0
- package/dist/esm/apollo.mjs +44 -0
- package/dist/esm/apollo.native.js +74 -0
- package/dist/esm/apollo.native.js.map +6 -0
- package/dist/esm/authConfig.js +8 -0
- package/dist/esm/authConfig.js.map +6 -0
- package/dist/esm/authConfig.mjs +6 -0
- package/dist/esm/authConfig.native.js +8 -0
- package/dist/esm/authConfig.native.js.map +6 -0
- package/dist/esm/hooks/index.js +4 -0
- package/dist/esm/hooks/index.js.map +6 -0
- package/dist/esm/hooks/index.mjs +3 -0
- package/dist/esm/hooks/index.native.js +4 -0
- package/dist/esm/hooks/index.native.js.map +6 -0
- package/dist/esm/hooks/useAuthConfig.js +9 -0
- package/dist/esm/hooks/useAuthConfig.js.map +6 -0
- package/dist/esm/hooks/useAuthConfig.mjs +6 -0
- package/dist/esm/hooks/useAuthConfig.native.js +9 -0
- package/dist/esm/hooks/useAuthConfig.native.js.map +6 -0
- package/dist/esm/hooks/useTokensFromQuery/index.js +13 -0
- package/dist/esm/hooks/useTokensFromQuery/index.js.map +6 -0
- package/dist/esm/hooks/useTokensFromQuery/index.mjs +14 -0
- package/dist/esm/hooks/useTokensFromQuery/index.native.js +7 -0
- package/dist/esm/hooks/useTokensFromQuery/index.native.js.map +6 -0
- package/dist/esm/hooks/useTokensFromState.js +10 -0
- package/dist/esm/hooks/useTokensFromState.js.map +6 -0
- package/dist/esm/hooks/useTokensFromState.mjs +7 -0
- package/dist/esm/hooks/useTokensFromState.native.js +10 -0
- package/dist/esm/hooks/useTokensFromState.native.js.map +6 -0
- package/dist/esm/index.js +9 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +8 -0
- package/dist/esm/index.native.js +9 -0
- package/dist/esm/index.native.js.map +6 -0
- package/dist/esm/keycloak/config.js +11 -0
- package/dist/esm/keycloak/config.js.map +6 -0
- package/dist/esm/keycloak/config.mjs +9 -0
- package/dist/esm/keycloak/config.native.js +11 -0
- package/dist/esm/keycloak/config.native.js.map +6 -0
- package/dist/esm/keycloak/context.js +7 -0
- package/dist/esm/keycloak/context.js.map +6 -0
- package/dist/esm/keycloak/context.mjs +5 -0
- package/dist/esm/keycloak/context.native.js +7 -0
- package/dist/esm/keycloak/context.native.js.map +6 -0
- package/dist/esm/keycloak/index.js +3 -0
- package/dist/esm/keycloak/index.js.map +6 -0
- package/dist/esm/keycloak/index.mjs +2 -0
- package/dist/esm/keycloak/index.native.js +3 -0
- package/dist/esm/keycloak/index.native.js.map +6 -0
- package/dist/esm/keycloak/keycloak.js +124 -0
- package/dist/esm/keycloak/keycloak.js.map +6 -0
- package/dist/esm/keycloak/keycloak.mjs +114 -0
- package/dist/esm/keycloak/keycloak.native.js +352 -0
- package/dist/esm/keycloak/keycloak.native.js.map +6 -0
- package/dist/esm/provider/AfterAuth.js +25 -0
- package/dist/esm/provider/AfterAuth.js.map +6 -0
- package/dist/esm/provider/AfterAuth.mjs +29 -0
- package/dist/esm/provider/AfterAuth.native.js +40 -0
- package/dist/esm/provider/AfterAuth.native.js.map +6 -0
- package/dist/esm/provider/AuthProvider/AuthProvider.js +162 -0
- package/dist/esm/provider/AuthProvider/AuthProvider.js.map +6 -0
- package/dist/esm/provider/AuthProvider/AuthProvider.mjs +164 -0
- package/dist/esm/provider/AuthProvider/AuthProvider.native.js +401 -0
- package/dist/esm/provider/AuthProvider/AuthProvider.native.js.map +6 -0
- package/dist/esm/provider/AuthProvider/index.js +2 -0
- package/dist/esm/provider/AuthProvider/index.js.map +6 -0
- package/dist/esm/provider/AuthProvider/index.mjs +1 -0
- package/dist/esm/provider/AuthProvider/index.native.js +2 -0
- package/dist/esm/provider/AuthProvider/index.native.js.map +6 -0
- package/dist/esm/provider/KeycloakProvider.js +32 -0
- package/dist/esm/provider/KeycloakProvider.js.map +6 -0
- package/dist/esm/provider/KeycloakProvider.mjs +33 -0
- package/dist/esm/provider/KeycloakProvider.native.js +32 -0
- package/dist/esm/provider/KeycloakProvider.native.js.map +6 -0
- package/dist/esm/provider/index.js +4 -0
- package/dist/esm/provider/index.js.map +6 -0
- package/dist/esm/provider/index.mjs +3 -0
- package/dist/esm/provider/index.native.js +4 -0
- package/dist/esm/provider/index.native.js.map +6 -0
- package/dist/esm/routes.js +121 -0
- package/dist/esm/routes.js.map +6 -0
- package/dist/esm/routes.mjs +109 -0
- package/dist/esm/routes.native.js +374 -0
- package/dist/esm/routes.native.js.map +6 -0
- package/dist/esm/session/index.js +2 -0
- package/dist/esm/session/index.js.map +6 -0
- package/dist/esm/session/index.mjs +1 -0
- package/dist/esm/session/index.native.js +2 -0
- package/dist/esm/session/index.native.js.map +6 -0
- package/dist/esm/session/session.js +26 -0
- package/dist/esm/session/session.js.map +6 -0
- package/dist/esm/session/session.mjs +21 -0
- package/dist/esm/session/session.native.js +136 -0
- package/dist/esm/session/session.native.js.map +6 -0
- package/dist/esm/state.js +20 -0
- package/dist/esm/state.js.map +6 -0
- package/dist/esm/state.mjs +16 -0
- package/dist/esm/state.native.js +17 -0
- package/dist/esm/state.native.js.map +6 -0
- package/dist/esm/token.js +14 -0
- package/dist/esm/token.js.map +6 -0
- package/dist/esm/token.mjs +11 -0
- package/dist/esm/token.native.js +14 -0
- package/dist/esm/token.native.js.map +6 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +6 -0
- package/dist/esm/types.mjs +0 -0
- package/dist/esm/types.native.js +1 -0
- package/dist/esm/types.native.js.map +6 -0
- package/dist/jsx/Authenticated.js +34 -0
- package/dist/jsx/Authenticated.js.map +6 -0
- package/dist/jsx/Authenticated.mjs +48 -0
- package/dist/jsx/Authenticated.native.js +67 -0
- package/dist/jsx/Authenticated.native.js.map +6 -0
- package/dist/jsx/apollo.js +49 -0
- package/dist/jsx/apollo.js.map +6 -0
- package/dist/jsx/apollo.mjs +44 -0
- package/dist/jsx/apollo.native.js +74 -0
- package/dist/jsx/apollo.native.js.map +6 -0
- package/dist/jsx/authConfig.js +8 -0
- package/dist/jsx/authConfig.js.map +6 -0
- package/dist/jsx/authConfig.mjs +6 -0
- package/dist/jsx/authConfig.native.js +8 -0
- package/dist/jsx/authConfig.native.js.map +6 -0
- package/dist/jsx/hooks/index.js +4 -0
- package/dist/jsx/hooks/index.js.map +6 -0
- package/dist/jsx/hooks/index.mjs +3 -0
- package/dist/jsx/hooks/index.native.js +4 -0
- package/dist/jsx/hooks/index.native.js.map +6 -0
- package/dist/jsx/hooks/useAuthConfig.js +9 -0
- package/dist/jsx/hooks/useAuthConfig.js.map +6 -0
- package/dist/jsx/hooks/useAuthConfig.mjs +6 -0
- package/dist/jsx/hooks/useAuthConfig.native.js +9 -0
- package/dist/jsx/hooks/useAuthConfig.native.js.map +6 -0
- package/dist/jsx/hooks/useTokensFromQuery/index.js +13 -0
- package/dist/jsx/hooks/useTokensFromQuery/index.js.map +6 -0
- package/dist/jsx/hooks/useTokensFromQuery/index.mjs +14 -0
- package/dist/jsx/hooks/useTokensFromQuery/index.native.js +7 -0
- package/dist/jsx/hooks/useTokensFromQuery/index.native.js.map +6 -0
- package/dist/jsx/hooks/useTokensFromState.js +10 -0
- package/dist/jsx/hooks/useTokensFromState.js.map +6 -0
- package/dist/jsx/hooks/useTokensFromState.mjs +7 -0
- package/dist/jsx/hooks/useTokensFromState.native.js +10 -0
- package/dist/jsx/hooks/useTokensFromState.native.js.map +6 -0
- package/dist/jsx/index.js +9 -0
- package/dist/jsx/index.js.map +6 -0
- package/dist/jsx/index.mjs +8 -0
- package/dist/jsx/index.native.js +9 -0
- package/dist/jsx/index.native.js.map +6 -0
- package/dist/jsx/keycloak/config.js +11 -0
- package/dist/jsx/keycloak/config.js.map +6 -0
- package/dist/jsx/keycloak/config.mjs +9 -0
- package/dist/jsx/keycloak/config.native.js +11 -0
- package/dist/jsx/keycloak/config.native.js.map +6 -0
- package/dist/jsx/keycloak/context.js +7 -0
- package/dist/jsx/keycloak/context.js.map +6 -0
- package/dist/jsx/keycloak/context.mjs +5 -0
- package/dist/jsx/keycloak/context.native.js +7 -0
- package/dist/jsx/keycloak/context.native.js.map +6 -0
- package/dist/jsx/keycloak/index.js +3 -0
- package/dist/jsx/keycloak/index.js.map +6 -0
- package/dist/jsx/keycloak/index.mjs +2 -0
- package/dist/jsx/keycloak/index.native.js +3 -0
- package/dist/jsx/keycloak/index.native.js.map +6 -0
- package/dist/jsx/keycloak/keycloak.js +124 -0
- package/dist/jsx/keycloak/keycloak.js.map +6 -0
- package/dist/jsx/keycloak/keycloak.mjs +114 -0
- package/dist/jsx/keycloak/keycloak.native.js +352 -0
- package/dist/jsx/keycloak/keycloak.native.js.map +6 -0
- package/dist/jsx/provider/AfterAuth.js +25 -0
- package/dist/jsx/provider/AfterAuth.js.map +6 -0
- package/dist/jsx/provider/AfterAuth.mjs +29 -0
- package/dist/jsx/provider/AfterAuth.native.js +40 -0
- package/dist/jsx/provider/AfterAuth.native.js.map +6 -0
- package/dist/jsx/provider/AuthProvider/AuthProvider.js +162 -0
- package/dist/jsx/provider/AuthProvider/AuthProvider.js.map +6 -0
- package/dist/jsx/provider/AuthProvider/AuthProvider.mjs +164 -0
- package/dist/jsx/provider/AuthProvider/AuthProvider.native.js +401 -0
- package/dist/jsx/provider/AuthProvider/AuthProvider.native.js.map +6 -0
- package/dist/jsx/provider/AuthProvider/index.js +2 -0
- package/dist/jsx/provider/AuthProvider/index.js.map +6 -0
- package/dist/jsx/provider/AuthProvider/index.mjs +1 -0
- package/dist/jsx/provider/AuthProvider/index.native.js +2 -0
- package/dist/jsx/provider/AuthProvider/index.native.js.map +6 -0
- package/dist/jsx/provider/KeycloakProvider.js +32 -0
- package/dist/jsx/provider/KeycloakProvider.js.map +6 -0
- package/dist/jsx/provider/KeycloakProvider.mjs +33 -0
- package/dist/jsx/provider/KeycloakProvider.native.js +32 -0
- package/dist/jsx/provider/KeycloakProvider.native.js.map +6 -0
- package/dist/jsx/provider/index.js +4 -0
- package/dist/jsx/provider/index.js.map +6 -0
- package/dist/jsx/provider/index.mjs +3 -0
- package/dist/jsx/provider/index.native.js +4 -0
- package/dist/jsx/provider/index.native.js.map +6 -0
- package/dist/jsx/routes.js +121 -0
- package/dist/jsx/routes.js.map +6 -0
- package/dist/jsx/routes.mjs +109 -0
- package/dist/jsx/routes.native.js +374 -0
- package/dist/jsx/routes.native.js.map +6 -0
- package/dist/jsx/session/index.js +2 -0
- package/dist/jsx/session/index.js.map +6 -0
- package/dist/jsx/session/index.mjs +1 -0
- package/dist/jsx/session/index.native.js +2 -0
- package/dist/jsx/session/index.native.js.map +6 -0
- package/dist/jsx/session/session.js +26 -0
- package/dist/jsx/session/session.js.map +6 -0
- package/dist/jsx/session/session.mjs +21 -0
- package/dist/jsx/session/session.native.js +136 -0
- package/dist/jsx/session/session.native.js.map +6 -0
- package/dist/jsx/state.js +20 -0
- package/dist/jsx/state.js.map +6 -0
- package/dist/jsx/state.mjs +16 -0
- package/dist/jsx/state.native.js +17 -0
- package/dist/jsx/state.native.js.map +6 -0
- package/dist/jsx/token.js +14 -0
- package/dist/jsx/token.js.map +6 -0
- package/dist/jsx/token.mjs +11 -0
- package/dist/jsx/token.native.js +14 -0
- package/dist/jsx/token.native.js.map +6 -0
- package/dist/jsx/types.js +1 -0
- package/dist/jsx/types.js.map +6 -0
- package/dist/jsx/types.mjs +0 -0
- package/dist/jsx/types.native.js +1 -0
- package/dist/jsx/types.native.js.map +6 -0
- package/package.json +4 -4
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import KeycloakClient from "keycloak-js";
|
|
4
|
+
import { useEffect, useMemo, useState } from "react";
|
|
5
|
+
import { AfterAuth } from "../AfterAuth.mjs";
|
|
6
|
+
import { Keycloak, KeycloakConfigContext } from "../../keycloak/index.mjs";
|
|
7
|
+
import { KeycloakContext } from "../../keycloak/context.mjs";
|
|
8
|
+
import { MultiPlatform } from "multiplatform.one";
|
|
9
|
+
import { SessionProvider } from "next-auth/react";
|
|
10
|
+
import { persist, useAuthState } from "../../state.mjs";
|
|
11
|
+
import { useAuthConfig } from "../../hooks/index.mjs";
|
|
12
|
+
import { useRouter } from "next/router";
|
|
13
|
+
import { validOrRefreshableToken } from "../../token.mjs";
|
|
14
|
+
import { jsx } from "react/jsx-runtime";
|
|
15
|
+
const logger = console;
|
|
16
|
+
function AuthProvider({
|
|
17
|
+
children,
|
|
18
|
+
sessionProvider,
|
|
19
|
+
keycloakInitOptions,
|
|
20
|
+
keycloakConfig
|
|
21
|
+
}) {
|
|
22
|
+
const {
|
|
23
|
+
debug,
|
|
24
|
+
messageHandlerKeys
|
|
25
|
+
} = useAuthConfig(),
|
|
26
|
+
{
|
|
27
|
+
query
|
|
28
|
+
} = MultiPlatform.isNext ? useRouter() : {
|
|
29
|
+
query: {}
|
|
30
|
+
},
|
|
31
|
+
authState = useAuthState(),
|
|
32
|
+
[keycloak, setKeycloak] = useState(),
|
|
33
|
+
initialRefreshToken = useMemo(() => validOrRefreshableToken(MultiPlatform.isIframe ? "refreshToken" in query && (query.refreshToken?.toString() || !0) || persist && authState.refreshToken || !1 : void 0), []),
|
|
34
|
+
[tokens, setTokens] = useState({
|
|
35
|
+
refreshToken: initialRefreshToken,
|
|
36
|
+
token: validOrRefreshableToken(MultiPlatform.isIframe ? "token" in query && (query.token?.toString() || !0) || persist && authState.token || !1 : void 0, initialRefreshToken),
|
|
37
|
+
idToken: validOrRefreshableToken(MultiPlatform.isIframe ? "idToken" in query && (query.idToken?.toString() || !0) || persist && authState.idToken || !1 : void 0, initialRefreshToken)
|
|
38
|
+
});
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
tokens.token !== !0 && tokens.refreshToken !== !0 && tokens.idToken !== !0 || (debug && logger.debug("post message", JSON.stringify({
|
|
41
|
+
type: "LOADED"
|
|
42
|
+
})), (messageHandlerKeys || []).forEach(key => {
|
|
43
|
+
window?.webkit?.messageHandlers?.[key]?.postMessage(JSON.stringify({
|
|
44
|
+
type: "LOADED"
|
|
45
|
+
}));
|
|
46
|
+
}), window?.ReactNativeWebView?.postMessage(JSON.stringify({
|
|
47
|
+
type: "LOADED"
|
|
48
|
+
})), window?.parent?.postMessage(JSON.stringify({
|
|
49
|
+
type: "LOADED"
|
|
50
|
+
})));
|
|
51
|
+
}, []), useEffect(() => {
|
|
52
|
+
if (tokens.refreshToken !== !0) return;
|
|
53
|
+
const messageCallback = e => {
|
|
54
|
+
let data = e?.data || null;
|
|
55
|
+
if (typeof data == "string") try {
|
|
56
|
+
data = JSON.parse(data);
|
|
57
|
+
} catch {}
|
|
58
|
+
debug && logger.debug("received message", JSON.stringify(data));
|
|
59
|
+
const message = data;
|
|
60
|
+
message.type && message.type.toUpperCase() === "REFRESH_TOKEN" && message.payload && (debug && logger.debug("setting refresh token", message.payload), setTokens(tokens2 => ({
|
|
61
|
+
...tokens2,
|
|
62
|
+
refreshToken: validOrRefreshableToken(message.payload)
|
|
63
|
+
})), window.removeEventListener("message", messageCallback));
|
|
64
|
+
};
|
|
65
|
+
return debug && logger.debug("listening for message", JSON.stringify({
|
|
66
|
+
type: "REFRESH_TOKEN",
|
|
67
|
+
payload: "<some_refresh_token>"
|
|
68
|
+
})), window.addEventListener("message", messageCallback), () => {
|
|
69
|
+
window.removeEventListener("message", messageCallback);
|
|
70
|
+
};
|
|
71
|
+
}, []), useEffect(() => {
|
|
72
|
+
if (tokens.token !== !0) return;
|
|
73
|
+
const messageCallback = e => {
|
|
74
|
+
let data = e?.data || null;
|
|
75
|
+
if (typeof data == "string") try {
|
|
76
|
+
data = JSON.parse(data);
|
|
77
|
+
} catch {}
|
|
78
|
+
debug && logger.debug("received message", JSON.stringify(data));
|
|
79
|
+
const message = data;
|
|
80
|
+
message.type && message.type.toUpperCase() === "TOKEN" && message.payload && (debug && logger.debug("setting token", message.payload), setTokens(tokens2 => ({
|
|
81
|
+
...tokens2,
|
|
82
|
+
token: validOrRefreshableToken(message.payload, tokens2.refreshToken)
|
|
83
|
+
})), window.removeEventListener("message", messageCallback));
|
|
84
|
+
};
|
|
85
|
+
return debug && logger.debug("listening for message", JSON.stringify({
|
|
86
|
+
type: "TOKEN",
|
|
87
|
+
payload: "<some_token>"
|
|
88
|
+
})), window.addEventListener("message", messageCallback), () => {
|
|
89
|
+
window.removeEventListener("message", messageCallback);
|
|
90
|
+
};
|
|
91
|
+
}, []), useEffect(() => {
|
|
92
|
+
if (tokens.idToken !== !0) return;
|
|
93
|
+
const messageCallback = e => {
|
|
94
|
+
let data = e?.data || null;
|
|
95
|
+
if (typeof data == "string") try {
|
|
96
|
+
data = JSON.parse(data);
|
|
97
|
+
} catch {}
|
|
98
|
+
debug && logger.debug("received message", JSON.stringify(data));
|
|
99
|
+
const message = data;
|
|
100
|
+
message.type && message.type.toUpperCase() === "ID_TOKEN" && message.payload && (debug && logger.debug("setting id token", message.payload), setTokens(tokens2 => ({
|
|
101
|
+
...tokens2,
|
|
102
|
+
idToken: validOrRefreshableToken(message.payload, tokens2.refreshToken)
|
|
103
|
+
})), window.removeEventListener("message", messageCallback));
|
|
104
|
+
};
|
|
105
|
+
return debug && logger.debug("listening for message", JSON.stringify({
|
|
106
|
+
type: "ID_TOKEN",
|
|
107
|
+
payload: "<some_id_token>"
|
|
108
|
+
})), window.addEventListener("message", messageCallback), () => {
|
|
109
|
+
window.removeEventListener("message", messageCallback);
|
|
110
|
+
};
|
|
111
|
+
}, []);
|
|
112
|
+
const keycloakClient = useMemo(() => MultiPlatform.isIframe && keycloakConfig ? new KeycloakClient({
|
|
113
|
+
url: keycloakConfig.url,
|
|
114
|
+
realm: keycloakConfig.realm,
|
|
115
|
+
clientId: keycloakConfig.publicClientId || keycloakConfig.clientId
|
|
116
|
+
}) : void 0, [keycloakInitOptions, keycloakConfig, tokens.token, tokens.refreshToken, tokens.idToken]),
|
|
117
|
+
initOptions = useMemo(() => {
|
|
118
|
+
if (!MultiPlatform.isIframe) return;
|
|
119
|
+
const initOptions2 = {
|
|
120
|
+
...defaultKeycloakInitOptions,
|
|
121
|
+
...keycloakInitOptions,
|
|
122
|
+
scope: [... /* @__PURE__ */new Set(["email", "openid", "profile", ...(defaultKeycloakInitOptions.scope?.split(" ") || []), ...(keycloakInitOptions?.scope?.split(" ") || []), ...(keycloakConfig.scopes || [])])].join(" ")
|
|
123
|
+
};
|
|
124
|
+
return debug && (initOptions2.enableLogging = !0), tokens.token && typeof tokens.token == "string" && (initOptions2.token = tokens.token, initOptions2.timeSkew = 0, tokens.idToken && typeof tokens.idToken == "string" && (initOptions2.idToken = tokens.idToken), tokens.refreshToken && typeof tokens.refreshToken == "string" && (initOptions2.refreshToken = tokens.refreshToken)), (typeof window < "u" && window.self !== window.top || tokens.token && !tokens.refreshToken) && (initOptions2.checkLoginIframe = !1, initOptions2.flow = "implicit", initOptions2.onLoad = void 0), initOptions2;
|
|
125
|
+
}, [keycloakInitOptions, keycloakConfig.scopes, tokens.token, tokens.idToken, tokens.refreshToken]);
|
|
126
|
+
return useEffect(() => {
|
|
127
|
+
function onError() {
|
|
128
|
+
keycloakClient && initOptions && setKeycloak(new Keycloak(keycloakConfig, keycloakClient));
|
|
129
|
+
}
|
|
130
|
+
function onUpdate() {
|
|
131
|
+
keycloakClient && initOptions && setKeycloak(new Keycloak(keycloakConfig, keycloakClient));
|
|
132
|
+
}
|
|
133
|
+
keycloakClient && initOptions && (async () => {
|
|
134
|
+
keycloakClient.onAuthError = onError, keycloakClient.onAuthLogout = onUpdate, keycloakClient.onAuthRefreshError = onError, keycloakClient.onAuthRefreshSuccess = onUpdate, keycloakClient.onAuthSuccess = onUpdate, keycloakClient.onReady = onUpdate, keycloakClient.onTokenExpired = async () => {
|
|
135
|
+
try {
|
|
136
|
+
await keycloakClient.updateToken(5);
|
|
137
|
+
} catch {
|
|
138
|
+
setKeycloak(new Keycloak(keycloakConfig));
|
|
139
|
+
}
|
|
140
|
+
};
|
|
141
|
+
const authenticated = await keycloakClient.init(initOptions);
|
|
142
|
+
setKeycloak(new Keycloak(keycloakConfig, authenticated ? keycloakClient : void 0));
|
|
143
|
+
})();
|
|
144
|
+
}, []), /* @__PURE__ */jsx(SessionProvider, {
|
|
145
|
+
...sessionProvider,
|
|
146
|
+
children: /* @__PURE__ */jsx(KeycloakConfigContext.Provider, {
|
|
147
|
+
value: keycloakConfig,
|
|
148
|
+
children: /* @__PURE__ */jsx(KeycloakContext.Provider, {
|
|
149
|
+
value: keycloak,
|
|
150
|
+
children: /* @__PURE__ */jsx(AfterAuth, {
|
|
151
|
+
children
|
|
152
|
+
})
|
|
153
|
+
})
|
|
154
|
+
})
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
const defaultKeycloakInitOptions = {
|
|
158
|
+
checkLoginIframe: !0,
|
|
159
|
+
checkLoginIframeInterval: 5,
|
|
160
|
+
enableLogging: !1,
|
|
161
|
+
onLoad: "check-sso",
|
|
162
|
+
pkceMethod: "S256"
|
|
163
|
+
};
|
|
164
|
+
export { AuthProvider };
|
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState, useEffect, useMemo, useCallback } from "react";
|
|
3
|
+
import { AfterAuth } from "../AfterAuth";
|
|
4
|
+
import { Keycloak, KeycloakConfigContext } from "../../keycloak";
|
|
5
|
+
import { KeycloakContext } from "../../keycloak/context";
|
|
6
|
+
import { makeRedirectUri, useAuthRequest, useAutoDiscovery, refreshAsync, exchangeCodeAsync } from "expo-auth-session";
|
|
7
|
+
import { persist, useAuthState } from "../../state";
|
|
8
|
+
import { validOrRefreshableToken, isTokenExpired } from "../../token";
|
|
9
|
+
function _array_like_to_array(arr, len) {
|
|
10
|
+
(len == null || len > arr.length) && (len = arr.length);
|
|
11
|
+
for (var i = 0, arr2 = new Array(len); i < len; i++)
|
|
12
|
+
arr2[i] = arr[i];
|
|
13
|
+
return arr2;
|
|
14
|
+
}
|
|
15
|
+
function _array_with_holes(arr) {
|
|
16
|
+
if (Array.isArray(arr))
|
|
17
|
+
return arr;
|
|
18
|
+
}
|
|
19
|
+
function _array_without_holes(arr) {
|
|
20
|
+
if (Array.isArray(arr))
|
|
21
|
+
return _array_like_to_array(arr);
|
|
22
|
+
}
|
|
23
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
|
24
|
+
try {
|
|
25
|
+
var info = gen[key](arg), value = info.value;
|
|
26
|
+
} catch (error) {
|
|
27
|
+
reject(error);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
info.done ? resolve(value) : Promise.resolve(value).then(_next, _throw);
|
|
31
|
+
}
|
|
32
|
+
function _async_to_generator(fn) {
|
|
33
|
+
return function() {
|
|
34
|
+
var self = this, args = arguments;
|
|
35
|
+
return new Promise(function(resolve, reject) {
|
|
36
|
+
var gen = fn.apply(self, args);
|
|
37
|
+
function _next(value) {
|
|
38
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
|
39
|
+
}
|
|
40
|
+
function _throw(err) {
|
|
41
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
|
42
|
+
}
|
|
43
|
+
_next(void 0);
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function _iterable_to_array(iter) {
|
|
48
|
+
if (typeof Symbol < "u" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
|
|
49
|
+
return Array.from(iter);
|
|
50
|
+
}
|
|
51
|
+
function _iterable_to_array_limit(arr, i) {
|
|
52
|
+
var _i = arr == null ? null : typeof Symbol < "u" && arr[Symbol.iterator] || arr["@@iterator"];
|
|
53
|
+
if (_i != null) {
|
|
54
|
+
var _arr = [], _n = !0, _d = !1, _s, _e;
|
|
55
|
+
try {
|
|
56
|
+
for (_i = _i.call(arr); !(_n = (_s = _i.next()).done) && (_arr.push(_s.value), !(i && _arr.length === i)); _n = !0)
|
|
57
|
+
;
|
|
58
|
+
} catch (err) {
|
|
59
|
+
_d = !0, _e = err;
|
|
60
|
+
} finally {
|
|
61
|
+
try {
|
|
62
|
+
!_n && _i.return != null && _i.return();
|
|
63
|
+
} finally {
|
|
64
|
+
if (_d)
|
|
65
|
+
throw _e;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return _arr;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
function _non_iterable_rest() {
|
|
72
|
+
throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
73
|
+
}
|
|
74
|
+
function _non_iterable_spread() {
|
|
75
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
76
|
+
}
|
|
77
|
+
function _sliced_to_array(arr, i) {
|
|
78
|
+
return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
|
|
79
|
+
}
|
|
80
|
+
function _to_consumable_array(arr) {
|
|
81
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
82
|
+
}
|
|
83
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
84
|
+
if (o) {
|
|
85
|
+
if (typeof o == "string")
|
|
86
|
+
return _array_like_to_array(o, minLen);
|
|
87
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
88
|
+
if (n === "Object" && o.constructor && (n = o.constructor.name), n === "Map" || n === "Set")
|
|
89
|
+
return Array.from(n);
|
|
90
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
|
|
91
|
+
return _array_like_to_array(o, minLen);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function _ts_generator(thisArg, body) {
|
|
95
|
+
var f, y, t, g, _ = {
|
|
96
|
+
label: 0,
|
|
97
|
+
sent: function() {
|
|
98
|
+
if (t[0] & 1)
|
|
99
|
+
throw t[1];
|
|
100
|
+
return t[1];
|
|
101
|
+
},
|
|
102
|
+
trys: [],
|
|
103
|
+
ops: []
|
|
104
|
+
};
|
|
105
|
+
return g = {
|
|
106
|
+
next: verb(0),
|
|
107
|
+
throw: verb(1),
|
|
108
|
+
return: verb(2)
|
|
109
|
+
}, typeof Symbol == "function" && (g[Symbol.iterator] = function() {
|
|
110
|
+
return this;
|
|
111
|
+
}), g;
|
|
112
|
+
function verb(n) {
|
|
113
|
+
return function(v) {
|
|
114
|
+
return step([
|
|
115
|
+
n,
|
|
116
|
+
v
|
|
117
|
+
]);
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function step(op) {
|
|
121
|
+
if (f)
|
|
122
|
+
throw new TypeError("Generator is already executing.");
|
|
123
|
+
for (; _; )
|
|
124
|
+
try {
|
|
125
|
+
if (f = 1, y && (t = op[0] & 2 ? y.return : op[0] ? y.throw || ((t = y.return) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done)
|
|
126
|
+
return t;
|
|
127
|
+
switch (y = 0, t && (op = [
|
|
128
|
+
op[0] & 2,
|
|
129
|
+
t.value
|
|
130
|
+
]), op[0]) {
|
|
131
|
+
case 0:
|
|
132
|
+
case 1:
|
|
133
|
+
t = op;
|
|
134
|
+
break;
|
|
135
|
+
case 4:
|
|
136
|
+
return _.label++, {
|
|
137
|
+
value: op[1],
|
|
138
|
+
done: !1
|
|
139
|
+
};
|
|
140
|
+
case 5:
|
|
141
|
+
_.label++, y = op[1], op = [
|
|
142
|
+
0
|
|
143
|
+
];
|
|
144
|
+
continue;
|
|
145
|
+
case 7:
|
|
146
|
+
op = _.ops.pop(), _.trys.pop();
|
|
147
|
+
continue;
|
|
148
|
+
default:
|
|
149
|
+
if (t = _.trys, !(t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
|
150
|
+
_ = 0;
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
|
154
|
+
_.label = op[1];
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
if (op[0] === 6 && _.label < t[1]) {
|
|
158
|
+
_.label = t[1], t = op;
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
if (t && _.label < t[2]) {
|
|
162
|
+
_.label = t[2], _.ops.push(op);
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
t[2] && _.ops.pop(), _.trys.pop();
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
op = body.call(thisArg, _);
|
|
169
|
+
} catch (e) {
|
|
170
|
+
op = [
|
|
171
|
+
6,
|
|
172
|
+
e
|
|
173
|
+
], y = 0;
|
|
174
|
+
} finally {
|
|
175
|
+
f = t = 0;
|
|
176
|
+
}
|
|
177
|
+
if (op[0] & 5)
|
|
178
|
+
throw op[1];
|
|
179
|
+
return {
|
|
180
|
+
value: op[0] ? op[1] : void 0,
|
|
181
|
+
done: !0
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
var REFRESH_THRESHOLD = 5;
|
|
186
|
+
function AuthProvider(param) {
|
|
187
|
+
var children = param.children, keycloakConfig = param.keycloakConfig, _response_params, _useState = _sliced_to_array(useState(), 2), keycloak = _useState[0], setKeycloak = _useState[1], authState = useAuthState(), initialRefreshToken = useMemo(function() {
|
|
188
|
+
return validOrRefreshableToken(persist && authState.refreshToken || !1);
|
|
189
|
+
}, []), keycloakUrl = "".concat(keycloakConfig == null ? void 0 : keycloakConfig.url, "/realms/").concat(keycloakConfig == null ? void 0 : keycloakConfig.realm), clientId = keycloakConfig.publicClientId || (keycloakConfig == null ? void 0 : keycloakConfig.clientId) || "", discovery = useAutoDiscovery(keycloakUrl), redirectUri = makeRedirectUri(), _useState1 = _sliced_to_array(useState({
|
|
190
|
+
refreshToken: initialRefreshToken,
|
|
191
|
+
token: validOrRefreshableToken(persist && authState.token || !1, initialRefreshToken),
|
|
192
|
+
idToken: validOrRefreshableToken(persist && authState.idToken || !1, initialRefreshToken)
|
|
193
|
+
}), 2), tokens = _useState1[0], setTokens = _useState1[1], scopes = useMemo(function() {
|
|
194
|
+
return _to_consumable_array(new Set([
|
|
195
|
+
"email",
|
|
196
|
+
"openid",
|
|
197
|
+
"profile"
|
|
198
|
+
].concat(_to_consumable_array(keycloakConfig.scopes || []))));
|
|
199
|
+
}, [
|
|
200
|
+
keycloakConfig.scopes
|
|
201
|
+
]), _useAuthRequest = _sliced_to_array(useAuthRequest({
|
|
202
|
+
clientId,
|
|
203
|
+
redirectUri,
|
|
204
|
+
scopes
|
|
205
|
+
}, discovery), 3), request = _useAuthRequest[0], response = _useAuthRequest[1], promptAsync = _useAuthRequest[2];
|
|
206
|
+
useEffect(function() {
|
|
207
|
+
!discovery || !(response != null && response.type) || !(request != null && request.codeVerifier) || !clientId || _async_to_generator(function() {
|
|
208
|
+
var tokenResponse;
|
|
209
|
+
return _ts_generator(this, function(_state) {
|
|
210
|
+
switch (_state.label) {
|
|
211
|
+
case 0:
|
|
212
|
+
return (response == null ? void 0 : response.type) === "success" && request.codeVerifier && response.params.code ? [
|
|
213
|
+
4,
|
|
214
|
+
exchangeCodeAsync({
|
|
215
|
+
clientId,
|
|
216
|
+
code: response.params.code,
|
|
217
|
+
redirectUri,
|
|
218
|
+
scopes,
|
|
219
|
+
extraParams: {
|
|
220
|
+
code_verifier: request.codeVerifier
|
|
221
|
+
}
|
|
222
|
+
}, discovery)
|
|
223
|
+
] : [
|
|
224
|
+
3,
|
|
225
|
+
2
|
|
226
|
+
];
|
|
227
|
+
case 1:
|
|
228
|
+
tokenResponse = _state.sent(), tokenResponse && setTokens({
|
|
229
|
+
idToken: tokenResponse.idToken,
|
|
230
|
+
refreshToken: tokenResponse.refreshToken,
|
|
231
|
+
token: tokenResponse.accessToken
|
|
232
|
+
}), _state.label = 2;
|
|
233
|
+
case 2:
|
|
234
|
+
return [
|
|
235
|
+
2
|
|
236
|
+
];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
})();
|
|
240
|
+
}, [
|
|
241
|
+
!discovery,
|
|
242
|
+
request == null ? void 0 : request.codeVerifier,
|
|
243
|
+
(response == null ? void 0 : response.type) === "success" ? response == null || (_response_params = response.params) === null || _response_params === void 0 ? void 0 : _response_params.code : void 0,
|
|
244
|
+
clientId,
|
|
245
|
+
scopes,
|
|
246
|
+
redirectUri
|
|
247
|
+
]);
|
|
248
|
+
var resetTokens = useCallback(function() {
|
|
249
|
+
authState.setIdToken(""), authState.setRefreshToken(""), authState.setToken(""), setTokens({
|
|
250
|
+
refreshToken: void 0,
|
|
251
|
+
token: void 0,
|
|
252
|
+
idToken: void 0
|
|
253
|
+
});
|
|
254
|
+
}, []), refreshTokens = useCallback(/* @__PURE__ */ _async_to_generator(function() {
|
|
255
|
+
var tokenResponse;
|
|
256
|
+
return _ts_generator(this, function(_state) {
|
|
257
|
+
switch (_state.label) {
|
|
258
|
+
case 0:
|
|
259
|
+
return discovery ? typeof tokens.refreshToken != "string" ? [
|
|
260
|
+
3,
|
|
261
|
+
4
|
|
262
|
+
] : isTokenExpired(tokens.refreshToken) ? [
|
|
263
|
+
3,
|
|
264
|
+
2
|
|
265
|
+
] : [
|
|
266
|
+
4,
|
|
267
|
+
refreshAsync({
|
|
268
|
+
clientId,
|
|
269
|
+
refreshToken: tokens.refreshToken,
|
|
270
|
+
scopes
|
|
271
|
+
}, discovery)
|
|
272
|
+
] : [
|
|
273
|
+
2
|
|
274
|
+
];
|
|
275
|
+
case 1:
|
|
276
|
+
return tokenResponse = _state.sent(), tokenResponse ? setTokens({
|
|
277
|
+
idToken: tokenResponse.idToken,
|
|
278
|
+
refreshToken: tokenResponse.refreshToken,
|
|
279
|
+
token: tokenResponse.accessToken
|
|
280
|
+
}) : resetTokens(), [
|
|
281
|
+
3,
|
|
282
|
+
3
|
|
283
|
+
];
|
|
284
|
+
case 2:
|
|
285
|
+
resetTokens(), _state.label = 3;
|
|
286
|
+
case 3:
|
|
287
|
+
return [
|
|
288
|
+
3,
|
|
289
|
+
5
|
|
290
|
+
];
|
|
291
|
+
case 4:
|
|
292
|
+
authState.refreshToken && typeof authState.refreshToken == "string" && isTokenExpired(authState.refreshToken) && resetTokens(), _state.label = 5;
|
|
293
|
+
case 5:
|
|
294
|
+
return [
|
|
295
|
+
2
|
|
296
|
+
];
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
}), [
|
|
300
|
+
!discovery,
|
|
301
|
+
tokens.refreshToken,
|
|
302
|
+
clientId,
|
|
303
|
+
scopes
|
|
304
|
+
]);
|
|
305
|
+
return useEffect(function() {
|
|
306
|
+
discovery && refreshTokens();
|
|
307
|
+
}, [
|
|
308
|
+
!discovery
|
|
309
|
+
]), useEffect(function() {
|
|
310
|
+
if (request) {
|
|
311
|
+
var refreshHandle;
|
|
312
|
+
return _async_to_generator(function() {
|
|
313
|
+
var _keycloak_tokenParsed, _keycloak, _keycloak_refreshTokenParsed, timeout;
|
|
314
|
+
return _ts_generator(this, function(_state) {
|
|
315
|
+
switch (_state.label) {
|
|
316
|
+
case 0:
|
|
317
|
+
return tokens.token && isTokenExpired(tokens.token) ? [
|
|
318
|
+
4,
|
|
319
|
+
refreshTokens()
|
|
320
|
+
] : [
|
|
321
|
+
3,
|
|
322
|
+
2
|
|
323
|
+
];
|
|
324
|
+
case 1:
|
|
325
|
+
return _state.sent(), [
|
|
326
|
+
3,
|
|
327
|
+
3
|
|
328
|
+
];
|
|
329
|
+
case 2:
|
|
330
|
+
if (_keycloak = new Keycloak(keycloakConfig, tokens.token || void 0, tokens.idToken || void 0, tokens.refreshToken || void 0, function() {
|
|
331
|
+
var _ref = _async_to_generator(function(options) {
|
|
332
|
+
return _ts_generator(this, function(_state2) {
|
|
333
|
+
switch (_state2.label) {
|
|
334
|
+
case 0:
|
|
335
|
+
return [
|
|
336
|
+
4,
|
|
337
|
+
promptAsync(options)
|
|
338
|
+
];
|
|
339
|
+
case 1:
|
|
340
|
+
return _state2.sent(), [
|
|
341
|
+
2
|
|
342
|
+
];
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
});
|
|
346
|
+
return function(options) {
|
|
347
|
+
return _ref.apply(this, arguments);
|
|
348
|
+
};
|
|
349
|
+
}(), function() {
|
|
350
|
+
var _ref = _async_to_generator(function(_options) {
|
|
351
|
+
return _ts_generator(this, function(_state2) {
|
|
352
|
+
return resetTokens(), [
|
|
353
|
+
2
|
|
354
|
+
];
|
|
355
|
+
});
|
|
356
|
+
});
|
|
357
|
+
return function(_options) {
|
|
358
|
+
return _ref.apply(this, arguments);
|
|
359
|
+
};
|
|
360
|
+
}()), !((_keycloak_tokenParsed = _keycloak.tokenParsed) === null || _keycloak_tokenParsed === void 0) && _keycloak_tokenParsed.exp)
|
|
361
|
+
if (timeout = Math.max(Math.min(_keycloak.tokenParsed.exp, ((_keycloak_refreshTokenParsed = _keycloak.refreshTokenParsed) === null || _keycloak_refreshTokenParsed === void 0 ? void 0 : _keycloak_refreshTokenParsed.exp) || 0) - Math.floor(Date.now() / 1e3) - REFRESH_THRESHOLD, REFRESH_THRESHOLD) * 1e3, timeout > 0)
|
|
362
|
+
refreshHandle = setTimeout(function() {
|
|
363
|
+
refreshTokens();
|
|
364
|
+
}, timeout);
|
|
365
|
+
else
|
|
366
|
+
return setTimeout(function() {
|
|
367
|
+
return _keycloak.logout();
|
|
368
|
+
}, Math.max(0, timeout + REFRESH_THRESHOLD) * 1e3), [
|
|
369
|
+
2
|
|
370
|
+
];
|
|
371
|
+
setKeycloak(_keycloak), _state.label = 3;
|
|
372
|
+
case 3:
|
|
373
|
+
return [
|
|
374
|
+
2
|
|
375
|
+
];
|
|
376
|
+
}
|
|
377
|
+
});
|
|
378
|
+
})(), function() {
|
|
379
|
+
refreshHandle && clearTimeout(refreshHandle);
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
}, [
|
|
383
|
+
!request,
|
|
384
|
+
tokens.token,
|
|
385
|
+
tokens.idToken,
|
|
386
|
+
tokens.refreshToken,
|
|
387
|
+
refreshTokens
|
|
388
|
+
]), /* @__PURE__ */ _jsx(KeycloakConfigContext.Provider, {
|
|
389
|
+
value: keycloakConfig,
|
|
390
|
+
children: /* @__PURE__ */ _jsx(KeycloakContext.Provider, {
|
|
391
|
+
value: keycloak,
|
|
392
|
+
children: /* @__PURE__ */ _jsx(AfterAuth, {
|
|
393
|
+
children
|
|
394
|
+
})
|
|
395
|
+
})
|
|
396
|
+
});
|
|
397
|
+
}
|
|
398
|
+
export {
|
|
399
|
+
AuthProvider
|
|
400
|
+
};
|
|
401
|
+
//# sourceMappingURL=AuthProvider.native.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/provider/AuthProvider/home/phani25/Projects/Bitspur/Internal/multiplatform.one/multiplatform.one/packages/keycloak/src/provider/AuthProvider/AuthProvider.native.tsx"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["useState", "useEffect", "useMemo", "useCallback", "AfterAuth", "Keycloak", "KeycloakConfigContext", "KeycloakContext", "makeRedirectUri", "useAuthRequest", "useAutoDiscovery", "refreshAsync", "exchangeCodeAsync", "persist", "useAuthState", "validOrRefreshableToken", "isTokenExpired", "REFRESH_THRESHOLD", "AuthProvider", "children", "keycloakConfig", "response", "keycloak", "setKeycloak", "authState", "initialRefreshToken", "refreshToken", "keycloakUrl", "url", "realm", "clientId", "publicClientId", "discovery", "redirectUri", "token", "idToken", "tokens", "setTokens", "scopes", "Set", "request", "promptAsync", "type", "codeVerifier", "tokenResponse", "params", "code", "extraParams", "code_verifier", "accessToken", "undefined", "resetTokens", "setIdToken", "setRefreshToken", "setToken", "refreshTokens", "refreshHandle", "_keycloak", "timeout", "options", "_state", "_options", "tokenParsed", "exp", "Math", "max", "min", "refreshTokenParsed", "floor", "Date", "now", "setTimeout", "logout", "clearTimeout", "Provider", "value"]
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./AuthProvider.mjs";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { AuthConfigContext } from "../authConfig";
|
|
3
|
+
import { AuthProvider } from "./AuthProvider";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
function KeycloakProvider({
|
|
6
|
+
children,
|
|
7
|
+
debug,
|
|
8
|
+
realm,
|
|
9
|
+
clientId,
|
|
10
|
+
baseUrl,
|
|
11
|
+
publicClientId,
|
|
12
|
+
session
|
|
13
|
+
}) {
|
|
14
|
+
const authConfig = useMemo(() => ({ debug }), [debug]);
|
|
15
|
+
return /* @__PURE__ */ jsx(AuthConfigContext.Provider, { value: authConfig, children: /* @__PURE__ */ jsx(
|
|
16
|
+
AuthProvider,
|
|
17
|
+
{
|
|
18
|
+
sessionProvider: { session },
|
|
19
|
+
keycloakConfig: {
|
|
20
|
+
clientId: clientId || "app",
|
|
21
|
+
publicClientId,
|
|
22
|
+
realm: realm || "main",
|
|
23
|
+
url: baseUrl
|
|
24
|
+
},
|
|
25
|
+
children
|
|
26
|
+
}
|
|
27
|
+
) });
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
KeycloakProvider
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=KeycloakProvider.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/provider/KeycloakProvider.tsx"],
|
|
4
|
+
"mappings": "AAqBA,SAAgB,eAAe;AAI/B,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAuBvB;AAbC,SAAS,iBAAiB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA0B;AACxB,QAAM,aAAa,QAAQ,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC;AAErD,SACE,oBAAC,kBAAkB,UAAlB,EAA2B,OAAO,YACjC;AAAA,IAAC;AAAA;AAAA,MACC,iBAAiB,EAAE,QAAQ;AAAA,MAC3B,gBAAgB;AAAA,QACd,UAAU,YAAY;AAAA,QACtB;AAAA,QACA,OAAO,SAAS;AAAA,QAChB,KAAK;AAAA,MACP;AAAA,MAEC;AAAA;AAAA,EACH,GACF;AAEJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { AuthConfigContext } from "../authConfig.mjs";
|
|
3
|
+
import { AuthProvider } from "./AuthProvider/index.mjs";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
function KeycloakProvider({
|
|
6
|
+
children,
|
|
7
|
+
debug,
|
|
8
|
+
realm,
|
|
9
|
+
clientId,
|
|
10
|
+
baseUrl,
|
|
11
|
+
publicClientId,
|
|
12
|
+
session
|
|
13
|
+
}) {
|
|
14
|
+
const authConfig = useMemo(() => ({
|
|
15
|
+
debug
|
|
16
|
+
}), [debug]);
|
|
17
|
+
return /* @__PURE__ */jsx(AuthConfigContext.Provider, {
|
|
18
|
+
value: authConfig,
|
|
19
|
+
children: /* @__PURE__ */jsx(AuthProvider, {
|
|
20
|
+
sessionProvider: {
|
|
21
|
+
session
|
|
22
|
+
},
|
|
23
|
+
keycloakConfig: {
|
|
24
|
+
clientId: clientId || "app",
|
|
25
|
+
publicClientId,
|
|
26
|
+
realm: realm || "main",
|
|
27
|
+
url: baseUrl
|
|
28
|
+
},
|
|
29
|
+
children
|
|
30
|
+
})
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
export { KeycloakProvider };
|