@multiplatform.one/keycloak 0.2.5 → 0.2.7
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/esm/Authenticated.mjs +25 -13
- package/dist/esm/Authenticated.mjs.map +3 -3
- package/dist/esm/authConfig.mjs +1 -0
- package/dist/esm/authConfig.mjs.map +2 -2
- package/dist/esm/hooks/useKeycloak/index.mjs.map +1 -1
- package/dist/esm/hooks/useKeycloak/useKeycloak.mjs +4 -59
- package/dist/esm/hooks/useKeycloak/useKeycloak.mjs.map +3 -3
- package/dist/esm/hooks/useKeycloak/useKeycloak.native.mjs.map +1 -1
- package/dist/esm/hooks/useLogin.mjs.map +1 -1
- package/dist/esm/provider/afterAuth.mjs +1 -1
- package/dist/esm/provider/afterAuth.mjs.map +2 -2
- package/dist/esm/provider/keycloakProvider.mjs +11 -9
- package/dist/esm/provider/keycloakProvider.mjs.map +3 -3
- package/dist/jsx/Authenticated.mjs +22 -10
- package/dist/jsx/Authenticated.mjs.map +2 -2
- package/dist/jsx/authConfig.mjs +1 -0
- package/dist/jsx/authConfig.mjs.map +2 -2
- package/dist/jsx/hooks/useKeycloak/index.mjs.map +1 -1
- package/dist/jsx/hooks/useKeycloak/useKeycloak.mjs +4 -5
- package/dist/jsx/hooks/useKeycloak/useKeycloak.mjs.map +2 -2
- package/dist/jsx/hooks/useKeycloak/useKeycloak.native.mjs.map +1 -1
- package/dist/jsx/hooks/useLogin.mjs.map +1 -1
- package/dist/jsx/provider/afterAuth.mjs +1 -1
- package/dist/jsx/provider/afterAuth.mjs.map +2 -2
- package/dist/jsx/provider/keycloakProvider.mjs +12 -10
- package/dist/jsx/provider/keycloakProvider.mjs.map +2 -2
- package/dist/jsx/provider/keycloakProvider.native.mjs.map +1 -1
- package/dist/lib/Authenticated.d.ts +2 -2
- package/dist/lib/Authenticated.js +22 -10
- package/dist/lib/Authenticated.js.map +2 -2
- package/dist/lib/authConfig.d.ts +2 -1
- package/dist/lib/authConfig.js +1 -0
- package/dist/lib/authConfig.js.map +2 -2
- package/dist/lib/hooks/useKeycloak/index.d.ts +2 -2
- package/dist/lib/hooks/useKeycloak/index.js.map +1 -1
- package/dist/lib/hooks/useKeycloak/useKeycloak.d.ts +1 -1
- package/dist/lib/hooks/useKeycloak/useKeycloak.js +5 -20
- package/dist/lib/hooks/useKeycloak/useKeycloak.js.map +2 -2
- package/dist/lib/hooks/useKeycloak/useKeycloak.native.d.ts +2 -2
- package/dist/lib/hooks/useKeycloak/useKeycloak.native.js.map +1 -1
- package/dist/lib/hooks/useLogin.d.ts +1 -1
- package/dist/lib/hooks/useLogin.js.map +1 -1
- package/dist/lib/provider/afterAuth.js +1 -1
- package/dist/lib/provider/afterAuth.js.map +2 -2
- package/dist/lib/provider/keycloakProvider.d.ts +3 -3
- package/dist/lib/provider/keycloakProvider.js +15 -13
- package/dist/lib/provider/keycloakProvider.js.map +2 -2
- package/dist/lib/provider/keycloakProvider.native.js.map +1 -1
- package/dist/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +16 -18
- package/src/Authenticated.tsx +23 -11
- package/src/authConfig.ts +3 -1
- package/src/hooks/useKeycloak/index.ts +2 -2
- package/src/hooks/useKeycloak/useKeycloak.native.ts +2 -2
- package/src/hooks/useKeycloak/useKeycloak.ts +6 -7
- package/src/hooks/useLogin.ts +1 -1
- package/src/provider/afterAuth.tsx +1 -1
- package/src/provider/keycloakProvider.native.tsx +1 -1
- package/src/provider/keycloakProvider.tsx +14 -12
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/afterAuth.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /auth/provider/afterAuth.tsx\n * Project: app\n * File Created: 22-11-2022 17:49:58\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:00:39\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useKeycloak } from '../hooks';\n\nexport interface AfterAuthProps {\n children: ReactNode;\n}\n\nconst logger = console;\n\nexport const AfterAuth: FC<AfterAuthProps> = ({ children }: AfterAuthProps) => {\n const authConfig = useAuthConfig();\n const { token, refreshToken, authenticated, idToken } = useKeycloak();\n const authState = useAuthState();\n\n useEffect(() => {\n if (!authenticated) return;\n if (token) {\n authState.setToken(token);\n if (idToken) authState.setIdToken(idToken);\n if (authConfig.ensureFreshness && refreshToken) authState.setRefreshToken(refreshToken);\n }\n }, [token, refreshToken, idToken]);\n\n useEffect(() => {\n if (authConfig.debug && authState.token) logger.debug('token', authState.token);\n }, [authState.token]);\n\n useEffect(() => {\n if (authConfig.debug && authState.idToken) logger.debug('idToken', authState.idToken);\n }, [authState.idToken]);\n\n useEffect(() => {\n if (authConfig.debug && authState.refreshToken) logger.debug(authState.refreshToken);\n }, [authState.refreshToken]);\n\n useEffect(() => {\n if (authConfig.debug) logger.debug('authenticated', authenticated);\n }, [authenticated]);\n\n return <>{children}</>;\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkES;AA1CT,mBAAiC;AAEjC,2BAA8B;AAC9B,mBAA6B;AAC7B,mBAA4B;AAM5B,MAAM,SAAS;AAER,MAAM,YAAgC,CAAC,EAAE,SAAS,MAAsB;AAC7E,QAAM,iBAAa,oCAAc;AACjC,QAAM,EAAE,OAAO,cAAc,eAAe,QAAQ,QAAI,0BAAY;AACpE,QAAM,gBAAY,2BAAa;AAE/B,8BAAU,MAAM;AACd,QAAI,CAAC;AAAe;AACpB,QAAI,OAAO;
|
|
4
|
+
"sourcesContent": ["/**\n * File: /auth/provider/afterAuth.tsx\n * Project: app\n * File Created: 22-11-2022 17:49:58\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:00:39\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect } from 'react';\nimport type { FC, ReactNode } from 'react';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useKeycloak } from '../hooks';\n\nexport interface AfterAuthProps {\n children: ReactNode;\n}\n\nconst logger = console;\n\nexport const AfterAuth: FC<AfterAuthProps> = ({ children }: AfterAuthProps) => {\n const authConfig = useAuthConfig();\n const { token, refreshToken, authenticated, idToken } = useKeycloak();\n const authState = useAuthState();\n\n useEffect(() => {\n if (!authenticated) return;\n if (authConfig.persist && token) {\n authState.setToken(token);\n if (idToken) authState.setIdToken(idToken);\n if (authConfig.ensureFreshness && refreshToken) authState.setRefreshToken(refreshToken);\n }\n }, [token, refreshToken, idToken]);\n\n useEffect(() => {\n if (authConfig.debug && authState.token) logger.debug('token', authState.token);\n }, [authState.token]);\n\n useEffect(() => {\n if (authConfig.debug && authState.idToken) logger.debug('idToken', authState.idToken);\n }, [authState.idToken]);\n\n useEffect(() => {\n if (authConfig.debug && authState.refreshToken) logger.debug(authState.refreshToken);\n }, [authState.refreshToken]);\n\n useEffect(() => {\n if (authConfig.debug) logger.debug('authenticated', authenticated);\n }, [authenticated]);\n\n return <>{children}</>;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAkES;AA1CT,mBAAiC;AAEjC,2BAA8B;AAC9B,mBAA6B;AAC7B,mBAA4B;AAM5B,MAAM,SAAS;AAER,MAAM,YAAgC,CAAC,EAAE,SAAS,MAAsB;AAC7E,QAAM,iBAAa,oCAAc;AACjC,QAAM,EAAE,OAAO,cAAc,eAAe,QAAQ,QAAI,0BAAY;AACpE,QAAM,gBAAY,2BAAa;AAE/B,8BAAU,MAAM;AACd,QAAI,CAAC;AAAe;AACpB,QAAI,WAAW,WAAW,OAAO;AAC/B,gBAAU,SAAS,KAAK;AACxB,UAAI;AAAS,kBAAU,WAAW,OAAO;AACzC,UAAI,WAAW,mBAAmB;AAAc,kBAAU,gBAAgB,YAAY;AAAA,IACxF;AAAA,EACF,GAAG,CAAC,OAAO,cAAc,OAAO,CAAC;AAEjC,8BAAU,MAAM;AACd,QAAI,WAAW,SAAS,UAAU;AAAO,aAAO,MAAM,SAAS,UAAU,KAAK;AAAA,EAChF,GAAG,CAAC,UAAU,KAAK,CAAC;AAEpB,8BAAU,MAAM;AACd,QAAI,WAAW,SAAS,UAAU;AAAS,aAAO,MAAM,WAAW,UAAU,OAAO;AAAA,EACtF,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,8BAAU,MAAM;AACd,QAAI,WAAW,SAAS,UAAU;AAAc,aAAO,MAAM,UAAU,YAAY;AAAA,EACrF,GAAG,CAAC,UAAU,YAAY,CAAC;AAE3B,8BAAU,MAAM;AACd,QAAI,WAAW;AAAO,aAAO,MAAM,iBAAiB,aAAa;AAAA,EACnE,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO,2EAAG,UAAS;AACrB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
* See the License for the specific language governing permissions and
|
|
22
22
|
* limitations under the License.
|
|
23
23
|
*/
|
|
24
|
-
import type {
|
|
25
|
-
import type {
|
|
24
|
+
import type { KeycloakInitOptions } from '@bitspur/keycloak-js';
|
|
25
|
+
import type { ReactNode, ComponentType } from 'react';
|
|
26
26
|
export interface KeycloakProviderProps {
|
|
27
27
|
children: ReactNode;
|
|
28
28
|
cookies?: unknown;
|
|
@@ -32,7 +32,7 @@ export interface KeycloakProviderProps {
|
|
|
32
32
|
keycloakInitOptions?: KeycloakInitOptions;
|
|
33
33
|
loadingComponent?: ComponentType;
|
|
34
34
|
}
|
|
35
|
-
export declare
|
|
35
|
+
export declare function KeycloakProvider({ children, cookies, debug, keycloakConfig, keycloakInitOptions, loadingComponent, }: KeycloakProviderProps): JSX.Element;
|
|
36
36
|
export interface KeycloakConfig {
|
|
37
37
|
clientId: string;
|
|
38
38
|
realm: string;
|
|
@@ -47,37 +47,37 @@ __export(keycloakProvider_exports, {
|
|
|
47
47
|
});
|
|
48
48
|
module.exports = __toCommonJS(keycloakProvider_exports);
|
|
49
49
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
50
|
-
var import_keycloak_js = __toESM(require("keycloak-js"));
|
|
50
|
+
var import_keycloak_js = __toESM(require("@bitspur/keycloak-js"));
|
|
51
51
|
var import_react = require("react");
|
|
52
52
|
var import_afterAuth = require("./afterAuth");
|
|
53
53
|
var import_multiplatform = require("multiplatform.one");
|
|
54
|
-
var
|
|
55
|
-
var
|
|
54
|
+
var import_react_keycloak_web = require("@bitspur/react-keycloak-web");
|
|
55
|
+
var import_react_keycloak_ssr = require("@bitspur/react-keycloak-ssr");
|
|
56
56
|
var import_useAuthConfig = require("../hooks/useAuthConfig");
|
|
57
57
|
var import_state = require("../state");
|
|
58
58
|
var import_router = require("next/router");
|
|
59
59
|
const logger = console;
|
|
60
|
-
|
|
60
|
+
function KeycloakProvider({
|
|
61
61
|
children,
|
|
62
62
|
cookies,
|
|
63
63
|
debug,
|
|
64
64
|
keycloakConfig,
|
|
65
65
|
keycloakInitOptions,
|
|
66
66
|
loadingComponent
|
|
67
|
-
})
|
|
67
|
+
}) {
|
|
68
68
|
var _a, _b, _c;
|
|
69
69
|
const authState = (0, import_state.useAuthState)();
|
|
70
70
|
const LoadingComponent = loadingComponent || (() => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children: debug ? "authenticating" : null }));
|
|
71
71
|
const { query } = import_multiplatform.MultiPlatform.isNext ? (0, import_router.useRouter)() : { query: {} };
|
|
72
72
|
const authConfig = (0, import_useAuthConfig.useAuthConfig)();
|
|
73
73
|
const [idToken, setIdToken] = (0, import_react.useState)(
|
|
74
|
-
"idToken" in query && (((_a = query.idToken) == null ? void 0 : _a.toString()) || true) || authState.idToken || false
|
|
74
|
+
"idToken" in query && (((_a = query.idToken) == null ? void 0 : _a.toString()) || true) || authConfig.persist && authState.idToken || false
|
|
75
75
|
);
|
|
76
76
|
const [token, setToken] = (0, import_react.useState)(
|
|
77
|
-
"token" in query && (((_b = query.token) == null ? void 0 : _b.toString()) || true) || authState.token || false
|
|
77
|
+
"token" in query && (((_b = query.token) == null ? void 0 : _b.toString()) || true) || authConfig.persist && authState.token || false
|
|
78
78
|
);
|
|
79
79
|
const [refreshToken, setRefreshToken] = (0, import_react.useState)(
|
|
80
|
-
authConfig.ensureFreshness && ("refreshToken" in query && (((_c = query.refreshToken) == null ? void 0 : _c.toString()) || true) || authState.refreshToken) || false
|
|
80
|
+
authConfig.ensureFreshness && ("refreshToken" in query && (((_c = query.refreshToken) == null ? void 0 : _c.toString()) || true) || authConfig.persist && authState.refreshToken) || false
|
|
81
81
|
);
|
|
82
82
|
const explicitToken = "idToken" in query || "token" in query || "refreshToken" in query;
|
|
83
83
|
(0, import_react.useEffect)(() => {
|
|
@@ -202,6 +202,8 @@ const KeycloakProvider = ({
|
|
|
202
202
|
);
|
|
203
203
|
const initOptions = (0, import_react.useMemo)(() => {
|
|
204
204
|
const initOptions2 = __spreadValues(__spreadValues({}, defaultKeycloakInitOptions), keycloakInitOptions);
|
|
205
|
+
if (debug)
|
|
206
|
+
initOptions2.enableLogging = true;
|
|
205
207
|
if (token && typeof token === "string") {
|
|
206
208
|
initOptions2.token = token;
|
|
207
209
|
if (idToken && typeof idToken === "string")
|
|
@@ -215,13 +217,13 @@ const KeycloakProvider = ({
|
|
|
215
217
|
}
|
|
216
218
|
return initOptions2;
|
|
217
219
|
}, [keycloakInitOptions, token, refreshToken, idToken]);
|
|
218
|
-
if (token === true || refreshToken === true)
|
|
220
|
+
if (token === true || idToken === true || refreshToken === true)
|
|
219
221
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingComponent, {});
|
|
220
222
|
if (cookies && authConfig.ssr) {
|
|
221
223
|
return (
|
|
222
224
|
// @ts-ignore
|
|
223
225
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
224
|
-
|
|
226
|
+
import_react_keycloak_ssr.SSRKeycloakProvider,
|
|
225
227
|
{
|
|
226
228
|
initOptions,
|
|
227
229
|
keycloakConfig: {
|
|
@@ -229,7 +231,7 @@ const KeycloakProvider = ({
|
|
|
229
231
|
realm: keycloakConfig.realm,
|
|
230
232
|
clientId: keycloakConfig.clientId
|
|
231
233
|
},
|
|
232
|
-
persistor: (0,
|
|
234
|
+
persistor: (0, import_react_keycloak_ssr.SSRCookies)(cookies),
|
|
233
235
|
LoadingComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingComponent, {}),
|
|
234
236
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_afterAuth.AfterAuth, { children })
|
|
235
237
|
}
|
|
@@ -238,8 +240,8 @@ const KeycloakProvider = ({
|
|
|
238
240
|
}
|
|
239
241
|
if (!keycloak)
|
|
240
242
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_jsx_runtime.Fragment, { children });
|
|
241
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
242
|
-
}
|
|
243
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_keycloak_web.ReactKeycloakProvider, { initOptions, authClient: keycloak, LoadingComponent: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingComponent, {}), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_afterAuth.AfterAuth, { children }) });
|
|
244
|
+
}
|
|
243
245
|
const defaultKeycloakInitOptions = {
|
|
244
246
|
checkLoginIframe: true,
|
|
245
247
|
checkLoginIframeInterval: 5,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/keycloakProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from 'keycloak-js';\nimport React, { useMemo, useEffect, useState } from 'react';\nimport type {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyDsD;AAjCtD,yBAAqB;AACrB,mBAAoD;AAGpD,uBAA0B;AAC1B,2BAA8B;AAC9B,
|
|
4
|
+
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:43\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 18:07:46\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Keycloak from '@bitspur/keycloak-js';\nimport React, { useMemo, useEffect, useState } from 'react';\nimport type { KeycloakInitOptions } from '@bitspur/keycloak-js';\nimport type { ReactNode, ComponentType } from 'react';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@bitspur/react-keycloak-web';\nimport { SSRKeycloakProvider, SSRCookies } from '@bitspur/react-keycloak-ssr';\nimport { useAuthConfig } from '../hooks/useAuthConfig';\nimport { useAuthState } from '../state';\nimport { useRouter } from 'next/router';\n\nexport interface KeycloakProviderProps {\n children: ReactNode;\n cookies?: unknown;\n debug?: boolean;\n disabled?: boolean;\n keycloakConfig: KeycloakConfig;\n keycloakInitOptions?: KeycloakInitOptions;\n loadingComponent?: ComponentType;\n}\n\nconst logger = console;\n\nexport function KeycloakProvider({\n children,\n cookies,\n debug,\n keycloakConfig,\n keycloakInitOptions,\n loadingComponent,\n}: KeycloakProviderProps) {\n const authState = useAuthState();\n const LoadingComponent = loadingComponent || (() => <>{debug ? 'authenticating' : null}</>);\n const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };\n const authConfig = useAuthConfig();\n const [idToken, setIdToken] = useState<string | boolean>(\n ('idToken' in query && (query.idToken?.toString() || true)) || (authConfig.persist && authState.idToken) || false,\n );\n const [token, setToken] = useState<string | boolean>(\n ('token' in query && (query.token?.toString() || true)) || (authConfig.persist && authState.token) || false,\n );\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n (authConfig.ensureFreshness &&\n (('refreshToken' in query && (query.refreshToken?.toString() || true)) ||\n (authConfig.persist && authState.refreshToken))) ||\n false,\n );\n const explicitToken = 'idToken' in query || 'token' in query || 'refreshToken' in query;\n\n useEffect(() => {\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', { type: 'LOADED' });\n (authConfig.messageHandlerKeys || []).forEach((key: string) => {\n window?.webkit?.messageHandlers?.[key]?.postMessage(JSON.stringify({ type: 'LOADED' }));\n });\n window?.ReactNativeWebView?.postMessage(JSON.stringify({ type: 'LOADED' }));\n window?.parent?.postMessage(JSON.stringify({ type: 'LOADED' }));\n }, []);\n\n useEffect(() => {\n if (token !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', data);\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'TOKEN' && message.payload) {\n if (debug) logger.debug('setting token', message.payload);\n setToken(message.payload);\n }\n };\n if (debug) {\n logger.debug('listening for message', {\n type: 'TOKEN',\n payload: '<some_token>',\n });\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (idToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', data);\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'ID_TOKEN' && message.payload) {\n if (debug) logger.debug('setting id token', message.payload);\n setIdToken(message.payload);\n }\n };\n if (debug) {\n logger.debug('listening for message', {\n type: 'ID_TOKEN',\n payload: '<some_id_token>',\n });\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n useEffect(() => {\n if (refreshToken !== true) return;\n const messageCallback = (e: MessageEvent<any>) => {\n let data = e?.data;\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (err) {}\n }\n if (debug) logger.debug('received message', data);\n const message: MessageSchema = data;\n if (!message.type) return;\n if (message.type.toUpperCase() === 'REFRESH_TOKEN' && message.payload) {\n if (debug) logger.debug('setting refresh token', message.payload);\n setRefreshToken(message.payload);\n }\n };\n if (debug) {\n logger.debug('listening for message', {\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>',\n });\n }\n window.addEventListener('message', messageCallback);\n return () => {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n\n const keycloak = useMemo(\n () =>\n typeof window !== 'undefined' &&\n new Keycloak({\n url: keycloakConfig.baseUrl,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId,\n }),\n [],\n );\n\n const initOptions = useMemo(() => {\n const initOptions = {\n ...defaultKeycloakInitOptions,\n ...keycloakInitOptions,\n };\n if (debug) initOptions.enableLogging = true;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n if (explicitToken) {\n initOptions.checkLoginIframe = false;\n initOptions.onLoad = undefined;\n }\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n\n if (token === true || idToken === true || refreshToken === true) return <LoadingComponent />;\n if (cookies && authConfig.ssr) {\n return (\n // @ts-ignore\n <SSRKeycloakProvider\n initOptions={initOptions}\n keycloakConfig={{\n url: keycloakConfig.baseUrl,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId,\n }}\n persistor={SSRCookies(cookies)}\n LoadingComponent={<LoadingComponent />}\n >\n <AfterAuth>{children}</AfterAuth>\n </SSRKeycloakProvider>\n );\n }\n if (!keycloak) return <>{children}</>;\n return (\n <ReactKeycloakProvider initOptions={initOptions} authClient={keycloak} LoadingComponent={<LoadingComponent />}>\n <AfterAuth>{children}</AfterAuth>\n </ReactKeycloakProvider>\n );\n}\n\nexport interface KeycloakConfig {\n clientId: string;\n realm: string;\n scheme?: string;\n baseUrl: string;\n}\n\nexport const defaultKeycloakInitOptions: KeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256',\n};\n\nexport interface MessageSchema {\n type: string;\n payload?: string;\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["_a", "_b", "_c", "Keycloak", "initOptions"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/keycloakProvider.native.tsx"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.native.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:37\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 17:52:31\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport type { FC } from 'react';\nimport type { KeycloakConfig } from 'keycloak-js';\nimport type { KeycloakProviderProps } from './keycloakProvider';\nimport { AfterAuth } from './afterAuth';\nimport { KeycloakProvider as ExpoKeycloakProvider } from 'expo-keycloak-auth';\n\nexport const KeycloakProvider: FC<KeycloakProviderProps> = ({ children, keycloakConfig }: KeycloakProviderProps) => {\n const clonedKeycloakConfig = {\n ...(keycloakConfig as Omit<KeycloakConfig, 'baseUrl'>),\n url: keycloakConfig.baseUrl,\n };\n // @ts-ignore\n delete keycloakConfig.baseUrl;\n return (\n <ExpoKeycloakProvider {...clonedKeycloakConfig}>\n <AfterAuth>{children}</AfterAuth>\n </ExpoKeycloakProvider>\n );\n};\n"],
|
|
4
|
+
"sourcesContent": ["/**\n * File: /auth/provider/keycloakProvider.native.tsx\n * Project: app\n * File Created: 08-11-2022 03:12:37\n * Author: Clay Risser\n * -----\n * Last Modified: 22-11-2022 17:52:31\n * Modified By: Clay Risser\n * -----\n * Risser Labs LLC (c) Copyright 2021 - 2022\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from 'react';\nimport type { FC } from 'react';\nimport type { KeycloakConfig } from '@bitspur/keycloak-js';\nimport type { KeycloakProviderProps } from './keycloakProvider';\nimport { AfterAuth } from './afterAuth';\nimport { KeycloakProvider as ExpoKeycloakProvider } from 'expo-keycloak-auth';\n\nexport const KeycloakProvider: FC<KeycloakProviderProps> = ({ children, keycloakConfig }: KeycloakProviderProps) => {\n const clonedKeycloakConfig = {\n ...(keycloakConfig as Omit<KeycloakConfig, 'baseUrl'>),\n url: keycloakConfig.baseUrl,\n };\n // @ts-ignore\n delete keycloakConfig.baseUrl;\n return (\n <ExpoKeycloakProvider {...clonedKeycloakConfig}>\n <AfterAuth>{children}</AfterAuth>\n </ExpoKeycloakProvider>\n );\n};\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAwCM;AAZN,uBAA0B;AAC1B,gCAAyD;AAElD,MAAM,mBAA8C,CAAC,EAAE,UAAU,eAAe,MAA6B;AAClH,QAAM,uBAAuB,iCACvB,iBADuB;AAAA,IAE3B,KAAK,eAAe;AAAA,EACtB;AAEA,SAAO,eAAe;AACtB,SACE,4CAAC,0BAAAA,kBAAA,iCAAyB,uBAAzB,EACC,sDAAC,8BAAW,UAAS,IACvB;AAEJ;",
|
|
6
6
|
"names": ["ExpoKeycloakProvider"]
|
|
7
7
|
}
|