@multiplatform.one/keycloak 0.2.2 → 0.2.3
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/hooks/useKeycloak/index.mjs.map +1 -1
- package/dist/esm/hooks/useKeycloak/useKeycloak.mjs.map +1 -1
- package/dist/esm/provider/afterAuth.mjs +20 -6
- package/dist/esm/provider/afterAuth.mjs.map +2 -2
- package/dist/esm/provider/keycloakProvider.mjs +45 -7
- package/dist/esm/provider/keycloakProvider.mjs.map +2 -2
- package/dist/esm/state/index.mjs +3 -2
- package/dist/esm/state/index.mjs.map +2 -2
- package/dist/jsx/hooks/useKeycloak/index.mjs.map +1 -1
- package/dist/jsx/hooks/useKeycloak/useKeycloak.mjs.map +1 -1
- package/dist/jsx/provider/afterAuth.mjs +20 -6
- package/dist/jsx/provider/afterAuth.mjs.map +2 -2
- package/dist/jsx/provider/keycloakProvider.mjs +45 -5
- package/dist/jsx/provider/keycloakProvider.mjs.map +2 -2
- package/dist/jsx/state/index.mjs +3 -2
- package/dist/jsx/state/index.mjs.map +2 -2
- package/dist/lib/hooks/useKeycloak/index.d.ts +2 -1
- 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.map +1 -1
- package/dist/lib/provider/afterAuth.js +20 -6
- package/dist/lib/provider/afterAuth.js.map +2 -2
- package/dist/lib/provider/keycloakProvider.js +49 -9
- package/dist/lib/provider/keycloakProvider.js.map +3 -3
- package/dist/lib/state/index.d.ts +5 -3
- package/dist/lib/state/index.js +3 -2
- package/dist/lib/state/index.js.map +2 -2
- package/dist/lib/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/hooks/useKeycloak/index.ts +2 -1
- package/src/hooks/useKeycloak/useKeycloak.ts +1 -1
- package/src/provider/afterAuth.tsx +19 -6
- package/src/provider/keycloakProvider.tsx +42 -5
- package/src/state/index.ts +3 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/index.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/index.ts\n * Project: app\n * File Created: 08-11-2022 14:10:44\n * Author: Clay Risser\n * -----\n * Last Modified:
|
|
4
|
+
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/index.ts\n * Project: app\n * File Created: 08-11-2022 14:10:44\n * Author: Clay Risser\n * -----\n * Last Modified: 18-04-2023 00:28:11\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 */\nexport * from \"./useKeycloak.mjs\";\nexport {};"],
|
|
5
5
|
"mappings": "AAuBA,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/useKeycloak.ts"],
|
|
4
|
-
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified:
|
|
4
|
+
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 18-04-2023 02:57:42\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 { MultiPlatform } from 'multiplatform.one';\nimport { useAuthConfig } from \"../useAuthConfig.mjs\";\nimport { useKeycloak as useReactKeycloak } from '@react-keycloak/web';\nimport { useKeycloak as useSsrKeycloak } from '@react-keycloak/ssr';\nexport function useKeycloak() {\n var authConfig = useAuthConfig();\n if (MultiPlatform.isStorybook) return {\n authenticated: true\n };\n if (MultiPlatform.isNext && authConfig.ssr) {\n var _useSsrKeycloak = useSsrKeycloak(),\n ssrKeycloak = _useSsrKeycloak.keycloak,\n _initialized = _useSsrKeycloak.initialized;\n var _keycloak = _objectSpread({}, ssrKeycloak);\n if (!_initialized) _keycloak.authenticated = undefined;\n return _keycloak;\n }\n var _useReactKeycloak = useReactKeycloak(),\n reactKeycloak = _useReactKeycloak.keycloak,\n initialized = _useReactKeycloak.initialized;\n var keycloak = _objectSpread({}, reactKeycloak);\n if (!initialized) keycloak.authenticated = undefined;\n return keycloak;\n}"],
|
|
5
5
|
"mappings": "AAAA,SAAS,QAAQ,KAAK;AAAE;AAA2B,SAAO,UAAU,cAAc,OAAO,UAAU,YAAY,OAAO,OAAO,WAAW,SAAUA,MAAK;AAAE,WAAO,OAAOA;AAAA,EAAK,IAAI,SAAUA,MAAK;AAAE,WAAOA,QAAO,cAAc,OAAO,UAAUA,KAAI,gBAAgB,UAAUA,SAAQ,OAAO,YAAY,WAAW,OAAOA;AAAA,EAAK,GAAG,QAAQ,GAAG;AAAG;AAC/U,SAAS,QAAQ,QAAQ,gBAAgB;AAAE,MAAI,OAAO,OAAO,KAAK,MAAM;AAAG,MAAI,OAAO,uBAAuB;AAAE,QAAI,UAAU,OAAO,sBAAsB,MAAM;AAAG,uBAAmB,UAAU,QAAQ,OAAO,SAAU,KAAK;AAAE,aAAO,OAAO,yBAAyB,QAAQ,GAAG,EAAE;AAAA,IAAY,CAAC,IAAI,KAAK,KAAK,MAAM,MAAM,OAAO;AAAA,EAAG;AAAE,SAAO;AAAM;AACpV,SAAS,cAAc,QAAQ;AAAE,WAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AAAE,QAAI,SAAS,QAAQ,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;AAAG,QAAI,IAAI,QAAQ,OAAO,MAAM,GAAG,IAAE,EAAE,QAAQ,SAAU,KAAK;AAAE,sBAAgB,QAAQ,KAAK,OAAO,GAAG,CAAC;AAAA,IAAG,CAAC,IAAI,OAAO,4BAA4B,OAAO,iBAAiB,QAAQ,OAAO,0BAA0B,MAAM,CAAC,IAAI,QAAQ,OAAO,MAAM,CAAC,EAAE,QAAQ,SAAU,KAAK;AAAE,aAAO,eAAe,QAAQ,KAAK,OAAO,yBAAyB,QAAQ,GAAG,CAAC;AAAA,IAAG,CAAC;AAAA,EAAG;AAAE,SAAO;AAAQ;AACzf,SAAS,gBAAgB,KAAK,KAAK,OAAO;AAAE,QAAM,eAAe,GAAG;AAAG,MAAI,OAAO,KAAK;AAAE,WAAO,eAAe,KAAK,KAAK,EAAE,OAAc,YAAY,MAAM,cAAc,MAAM,UAAU,KAAK,CAAC;AAAA,EAAG,OAAO;AAAE,QAAI,GAAG,IAAI;AAAA,EAAO;AAAE,SAAO;AAAK;AAC3O,SAAS,eAAe,KAAK;AAAE,MAAI,MAAM,aAAa,KAAK,QAAQ;AAAG,SAAO,QAAQ,GAAG,MAAM,WAAW,MAAM,OAAO,GAAG;AAAG;AAC5H,SAAS,aAAa,OAAO,MAAM;AAAE,MAAI,QAAQ,KAAK,MAAM,YAAY,UAAU;AAAM,WAAO;AAAO,MAAI,OAAO,MAAM,OAAO,WAAW;AAAG,MAAI,SAAS,QAAW;AAAE,QAAI,MAAM,KAAK,KAAK,OAAO,QAAQ,SAAS;AAAG,QAAI,QAAQ,GAAG,MAAM;AAAU,aAAO;AAAK,UAAM,IAAI,UAAU,8CAA8C;AAAA,EAAG;AAAE,UAAQ,SAAS,WAAW,SAAS,QAAQ,KAAK;AAAG;AAyB5X,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe,wBAAwB;AAChD,SAAS,eAAe,sBAAsB;AACvC,SAAS,cAAc;AAC5B,MAAI,aAAa,cAAc;AAC/B,MAAI,cAAc;AAAa,WAAO;AAAA,MACpC,eAAe;AAAA,IACjB;AACA,MAAI,cAAc,UAAU,WAAW,KAAK;AAC1C,QAAI,kBAAkB,eAAe,GACnC,cAAc,gBAAgB,UAC9B,eAAe,gBAAgB;AACjC,QAAI,YAAY,cAAc,CAAC,GAAG,WAAW;AAC7C,QAAI,CAAC;AAAc,gBAAU,gBAAgB;AAC7C,WAAO;AAAA,EACT;AACA,MAAI,oBAAoB,iBAAiB,GACvC,gBAAgB,kBAAkB,UAClC,cAAc,kBAAkB;AAClC,MAAI,WAAW,cAAc,CAAC,GAAG,aAAa;AAC9C,MAAI,CAAC;AAAa,aAAS,gBAAgB;AAC3C,SAAO;AACT;",
|
|
6
6
|
"names": ["obj"]
|
|
7
7
|
}
|
|
@@ -6,21 +6,35 @@ var logger = console;
|
|
|
6
6
|
var AfterAuth = function AfterAuth2(_ref) {
|
|
7
7
|
var children = _ref.children;
|
|
8
8
|
var authConfig = useAuthConfig();
|
|
9
|
-
var _useKeycloak = useKeycloak(), token = _useKeycloak.token, refreshToken = _useKeycloak.refreshToken, authenticated = _useKeycloak.authenticated;
|
|
9
|
+
var _useKeycloak = useKeycloak(), token = _useKeycloak.token, refreshToken = _useKeycloak.refreshToken, authenticated = _useKeycloak.authenticated, idToken = _useKeycloak.idToken;
|
|
10
10
|
var authState = useAuthState();
|
|
11
11
|
useEffect(function() {
|
|
12
12
|
if (!authenticated)
|
|
13
13
|
return;
|
|
14
14
|
if (token) {
|
|
15
15
|
authState.setToken(token);
|
|
16
|
+
if (idToken)
|
|
17
|
+
authState.setIdToken(idToken);
|
|
16
18
|
if (authConfig.ensureFreshness && refreshToken)
|
|
17
19
|
authState.setRefreshToken(refreshToken);
|
|
18
20
|
}
|
|
19
|
-
}, [token, refreshToken]);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
21
|
+
}, [token, refreshToken, idToken]);
|
|
22
|
+
useEffect(function() {
|
|
23
|
+
if (authConfig.debug && authState.token)
|
|
24
|
+
logger.debug("token", authState.token);
|
|
25
|
+
}, [authState.token]);
|
|
26
|
+
useEffect(function() {
|
|
27
|
+
if (authConfig.debug && authState.idToken)
|
|
28
|
+
logger.debug("idToken", authState.idToken);
|
|
29
|
+
}, [authState.idToken]);
|
|
30
|
+
useEffect(function() {
|
|
31
|
+
if (authConfig.debug && authState.refreshToken)
|
|
32
|
+
logger.debug(authState.refreshToken);
|
|
33
|
+
}, [authState.refreshToken]);
|
|
34
|
+
useEffect(function() {
|
|
35
|
+
if (authConfig.debug)
|
|
36
|
+
logger.debug("authenticated", authenticated);
|
|
37
|
+
}, [authenticated]);
|
|
24
38
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, children);
|
|
25
39
|
};
|
|
26
40
|
export {
|
|
@@ -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 { useAuthConfig } from \"../hooks/useAuthConfig.mjs\";\nimport { useAuthState } from \"../state/index.mjs\";\nimport { useKeycloak } from \"../hooks/index.mjs\";\nvar logger = console;\nexport var AfterAuth = function AfterAuth(_ref) {\n var children = _ref.children;\n var authConfig = useAuthConfig();\n var _useKeycloak = useKeycloak(),\n token = _useKeycloak.token,\n refreshToken = _useKeycloak.refreshToken,\n authenticated = _useKeycloak.authenticated;\n var authState = useAuthState();\n useEffect(function () {\n if (!authenticated) return;\n if (token) {\n authState.setToken(token);\n if (authConfig.ensureFreshness && refreshToken) authState.setRefreshToken(refreshToken);\n }\n }, [token, refreshToken]);\n if (authConfig.debug) {\n logger.debug('
|
|
5
|
-
"mappings": "AAwBA,OAAO,SAAS,iBAAiB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,IAAI,SAAS;AACN,IAAI,YAAY,SAASA,WAAU,MAAM;AAC9C,MAAI,WAAW,KAAK;AACpB,MAAI,aAAa,cAAc;AAC/B,MAAI,eAAe,YAAY,GAC7B,QAAQ,aAAa,OACrB,eAAe,aAAa,cAC5B,gBAAgB,aAAa;
|
|
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 { useAuthConfig } from \"../hooks/useAuthConfig.mjs\";\nimport { useAuthState } from \"../state/index.mjs\";\nimport { useKeycloak } from \"../hooks/index.mjs\";\nvar logger = console;\nexport var AfterAuth = function AfterAuth(_ref) {\n var children = _ref.children;\n var authConfig = useAuthConfig();\n var _useKeycloak = useKeycloak(),\n token = _useKeycloak.token,\n refreshToken = _useKeycloak.refreshToken,\n authenticated = _useKeycloak.authenticated,\n idToken = _useKeycloak.idToken;\n var authState = useAuthState();\n useEffect(function () {\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 useEffect(function () {\n if (authConfig.debug && authState.token) logger.debug('token', authState.token);\n }, [authState.token]);\n useEffect(function () {\n if (authConfig.debug && authState.idToken) logger.debug('idToken', authState.idToken);\n }, [authState.idToken]);\n useEffect(function () {\n if (authConfig.debug && authState.refreshToken) logger.debug(authState.refreshToken);\n }, [authState.refreshToken]);\n useEffect(function () {\n if (authConfig.debug) logger.debug('authenticated', authenticated);\n }, [authenticated]);\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};"],
|
|
5
|
+
"mappings": "AAwBA,OAAO,SAAS,iBAAiB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,IAAI,SAAS;AACN,IAAI,YAAY,SAASA,WAAU,MAAM;AAC9C,MAAI,WAAW,KAAK;AACpB,MAAI,aAAa,cAAc;AAC/B,MAAI,eAAe,YAAY,GAC7B,QAAQ,aAAa,OACrB,eAAe,aAAa,cAC5B,gBAAgB,aAAa,eAC7B,UAAU,aAAa;AACzB,MAAI,YAAY,aAAa;AAC7B,YAAU,WAAY;AACpB,QAAI,CAAC;AAAe;AACpB,QAAI,OAAO;AACT,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;AACjC,YAAU,WAAY;AACpB,QAAI,WAAW,SAAS,UAAU;AAAO,aAAO,MAAM,SAAS,UAAU,KAAK;AAAA,EAChF,GAAG,CAAC,UAAU,KAAK,CAAC;AACpB,YAAU,WAAY;AACpB,QAAI,WAAW,SAAS,UAAU;AAAS,aAAO,MAAM,WAAW,UAAU,OAAO;AAAA,EACtF,GAAG,CAAC,UAAU,OAAO,CAAC;AACtB,YAAU,WAAY;AACpB,QAAI,WAAW,SAAS,UAAU;AAAc,aAAO,MAAM,UAAU,YAAY;AAAA,EACrF,GAAG,CAAC,UAAU,YAAY,CAAC;AAC3B,YAAU,WAAY;AACpB,QAAI,WAAW;AAAO,aAAO,MAAM,iBAAiB,aAAa;AAAA,EACnE,GAAG,CAAC,aAAa,CAAC;AAClB,SAAoB,sBAAM,cAAc,MAAM,UAAU,MAAM,QAAQ;AACxE;",
|
|
6
6
|
"names": ["AfterAuth"]
|
|
7
7
|
}
|
|
@@ -119,7 +119,7 @@ import { useAuthState } from "../state/index.mjs";
|
|
|
119
119
|
import { useRouter } from "next/router";
|
|
120
120
|
var logger = console;
|
|
121
121
|
var KeycloakProvider = function KeycloakProvider2(_ref) {
|
|
122
|
-
var _query$token, _query$refreshToken;
|
|
122
|
+
var _query$idToken, _query$token, _query$refreshToken;
|
|
123
123
|
var children = _ref.children, cookies = _ref.cookies, debug = _ref.debug, keycloakConfig = _ref.keycloakConfig, keycloakInitOptions = _ref.keycloakInitOptions, loadingComponent = _ref.loadingComponent;
|
|
124
124
|
var authState = useAuthState();
|
|
125
125
|
var LoadingComponent = loadingComponent || function() {
|
|
@@ -129,11 +129,12 @@ var KeycloakProvider = function KeycloakProvider2(_ref) {
|
|
|
129
129
|
query: {}
|
|
130
130
|
}, query = _ref2.query;
|
|
131
131
|
var authConfig = useAuthConfig();
|
|
132
|
-
var _useState = useState("
|
|
133
|
-
var _useState3 = useState("
|
|
132
|
+
var _useState = useState("idToken" in query && (((_query$idToken = query.idToken) === null || _query$idToken === void 0 ? void 0 : _query$idToken.toString()) || true) || authState.idToken || false), _useState2 = _slicedToArray(_useState, 2), idToken = _useState2[0], setIdToken = _useState2[1];
|
|
133
|
+
var _useState3 = useState("token" in query && (((_query$token = query.token) === null || _query$token === void 0 ? void 0 : _query$token.toString()) || true) || authState.token || false), _useState4 = _slicedToArray(_useState3, 2), token = _useState4[0], setToken = _useState4[1];
|
|
134
|
+
var _useState5 = useState(authConfig.ensureFreshness && ("refreshToken" in query && (((_query$refreshToken = query.refreshToken) === null || _query$refreshToken === void 0 ? void 0 : _query$refreshToken.toString()) || true) || authState.refreshToken) || false), _useState6 = _slicedToArray(_useState5, 2), refreshToken = _useState6[0], setRefreshToken = _useState6[1];
|
|
134
135
|
useEffect(function() {
|
|
135
136
|
var _window2, _window2$ReactNativeW, _window3, _window3$parent;
|
|
136
|
-
if (token !== true && refreshToken !== true)
|
|
137
|
+
if (token !== true && refreshToken !== true && idToken !== true)
|
|
137
138
|
return;
|
|
138
139
|
if (debug)
|
|
139
140
|
logger.debug("post message", {
|
|
@@ -174,11 +175,45 @@ var KeycloakProvider = function KeycloakProvider2(_ref) {
|
|
|
174
175
|
setToken(message.payload);
|
|
175
176
|
}
|
|
176
177
|
};
|
|
177
|
-
if (debug)
|
|
178
|
+
if (debug) {
|
|
178
179
|
logger.debug("listening for message", {
|
|
179
180
|
type: "TOKEN",
|
|
180
181
|
payload: "<some_token>"
|
|
181
182
|
});
|
|
183
|
+
}
|
|
184
|
+
window.addEventListener("message", messageCallback);
|
|
185
|
+
return function() {
|
|
186
|
+
window.removeEventListener("message", messageCallback);
|
|
187
|
+
};
|
|
188
|
+
}, []);
|
|
189
|
+
useEffect(function() {
|
|
190
|
+
if (idToken !== true)
|
|
191
|
+
return;
|
|
192
|
+
var messageCallback = function messageCallback2(e) {
|
|
193
|
+
var data = e === null || e === void 0 ? void 0 : e.data;
|
|
194
|
+
if (typeof data === "string") {
|
|
195
|
+
try {
|
|
196
|
+
data = JSON.parse(data);
|
|
197
|
+
} catch (err) {
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (debug)
|
|
201
|
+
logger.debug("received message", data);
|
|
202
|
+
var message = data;
|
|
203
|
+
if (!message.type)
|
|
204
|
+
return;
|
|
205
|
+
if (message.type.toUpperCase() === "ID_TOKEN" && message.payload) {
|
|
206
|
+
if (debug)
|
|
207
|
+
logger.debug("setting id token", message.payload);
|
|
208
|
+
setIdToken(message.payload);
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
if (debug) {
|
|
212
|
+
logger.debug("listening for message", {
|
|
213
|
+
type: "ID_TOKEN",
|
|
214
|
+
payload: "<some_id_token>"
|
|
215
|
+
});
|
|
216
|
+
}
|
|
182
217
|
window.addEventListener("message", messageCallback);
|
|
183
218
|
return function() {
|
|
184
219
|
window.removeEventListener("message", messageCallback);
|
|
@@ -206,11 +241,12 @@ var KeycloakProvider = function KeycloakProvider2(_ref) {
|
|
|
206
241
|
setRefreshToken(message.payload);
|
|
207
242
|
}
|
|
208
243
|
};
|
|
209
|
-
if (debug)
|
|
244
|
+
if (debug) {
|
|
210
245
|
logger.debug("listening for message", {
|
|
211
246
|
type: "REFRESH_TOKEN",
|
|
212
247
|
payload: "<some_refresh_token>"
|
|
213
248
|
});
|
|
249
|
+
}
|
|
214
250
|
window.addEventListener("message", messageCallback);
|
|
215
251
|
return function() {
|
|
216
252
|
window.removeEventListener("message", messageCallback);
|
|
@@ -225,6 +261,8 @@ var KeycloakProvider = function KeycloakProvider2(_ref) {
|
|
|
225
261
|
}, []);
|
|
226
262
|
var initOptions = useMemo(function() {
|
|
227
263
|
var initOptions2 = _objectSpread(_objectSpread({}, defaultKeycloakInitOptions), keycloakInitOptions);
|
|
264
|
+
if (idToken && typeof idToken === "string")
|
|
265
|
+
initOptions2.idToken = idToken;
|
|
228
266
|
if (token && typeof token === "string") {
|
|
229
267
|
initOptions2.token = token;
|
|
230
268
|
if (refreshToken && typeof refreshToken === "string")
|
|
@@ -233,7 +271,7 @@ var KeycloakProvider = function KeycloakProvider2(_ref) {
|
|
|
233
271
|
initOptions2.onLoad = void 0;
|
|
234
272
|
}
|
|
235
273
|
return initOptions2;
|
|
236
|
-
}, [keycloakInitOptions, token, refreshToken]);
|
|
274
|
+
}, [keycloakInitOptions, token, refreshToken, idToken]);
|
|
237
275
|
if (token === true || refreshToken === true)
|
|
238
276
|
return /* @__PURE__ */ React.createElement(LoadingComponent, null);
|
|
239
277
|
if (cookies && authConfig.ssr) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/provider/keycloakProvider.tsx"],
|
|
4
|
-
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\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 { AfterAuth } from \"./afterAuth.mjs\";\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@react-keycloak/web';\nimport { SSRKeycloakProvider, SSRCookies } from '@react-keycloak/ssr';\nimport { useAuthConfig } from \"../hooks/useAuthConfig.mjs\";\nimport { useAuthState } from \"../state/index.mjs\";\nimport { useRouter } from 'next/router';\nvar logger = console;\nexport var KeycloakProvider = function KeycloakProvider(_ref) {\n var _query$token, _query$refreshToken;\n var children = _ref.children,\n cookies = _ref.cookies,\n debug = _ref.debug,\n keycloakConfig = _ref.keycloakConfig,\n keycloakInitOptions = _ref.keycloakInitOptions,\n loadingComponent = _ref.loadingComponent;\n var authState = useAuthState();\n var LoadingComponent = loadingComponent || function () {\n return /*#__PURE__*/React.createElement(React.Fragment, null, debug ? 'authenticating' : null);\n };\n var _ref2 = MultiPlatform.isNext ? useRouter() : {\n query: {}\n },\n query = _ref2.query;\n var authConfig = useAuthConfig();\n var _useState = useState('token' in query && (((_query$token = query.token) === null || _query$token === void 0 ? void 0 : _query$token.toString()) || true) || authState.token || false),\n _useState2 = _slicedToArray(_useState, 2),\n token = _useState2[0],\n setToken = _useState2[1];\n var _useState3 = useState('refreshToken' in query && (((_query$refreshToken = query.refreshToken) === null || _query$refreshToken === void 0 ? void 0 : _query$refreshToken.toString()) || true) || authState.refreshToken || false),\n _useState4 = _slicedToArray(_useState3, 2),\n refreshToken = _useState4[0],\n setRefreshToken = _useState4[1];\n useEffect(function () {\n var _window2, _window2$ReactNativeW, _window3, _window3$parent;\n if (token !== true && refreshToken !== true) return;\n if (debug) logger.debug('post message', {\n type: 'LOADED'\n });\n (authConfig.messageHandlerKeys || []).forEach(function (key) {\n var _window, _window$webkit, _window$webkit$messag, _window$webkit$messag2;\n (_window = window) === null || _window === void 0 ? void 0 : (_window$webkit = _window.webkit) === null || _window$webkit === void 0 ? void 0 : (_window$webkit$messag = _window$webkit.messageHandlers) === null || _window$webkit$messag === void 0 ? void 0 : (_window$webkit$messag2 = _window$webkit$messag[key]) === null || _window$webkit$messag2 === void 0 ? void 0 : _window$webkit$messag2.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n });\n (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$ReactNativeW = _window2.ReactNativeWebView) === null || _window2$ReactNativeW === void 0 ? void 0 : _window2$ReactNativeW.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$parent = _window3.parent) === null || _window3$parent === void 0 ? void 0 : _window3$parent.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n }, []);\n useEffect(function () {\n if (token !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = e === null || e === void 0 ? void 0 : 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 var message = 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) logger.debug('listening for message', {\n type: 'TOKEN',\n payload: '<some_token>'\n });\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (refreshToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = e === null || e === void 0 ? void 0 : 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 var message = 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) logger.debug('listening for message', {\n type: 'REFRESH_TOKEN',\n payload: '<some_refresh_token>'\n });\n window.addEventListener('message', messageCallback);\n return function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n var keycloak = useMemo(function () {\n return typeof window !== 'undefined' && new Keycloak({\n url: keycloakConfig.baseUrl,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId\n });\n }, []);\n var initOptions = useMemo(function () {\n var initOptions = _objectSpread(_objectSpread({}, defaultKeycloakInitOptions), keycloakInitOptions);\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n initOptions.checkLoginIframe = false;\n initOptions.onLoad = undefined;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken]);\n if (token === true || refreshToken === true) return /*#__PURE__*/React.createElement(LoadingComponent, null);\n if (cookies && authConfig.ssr) {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(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: /*#__PURE__*/React.createElement(LoadingComponent, null)\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children))\n );\n }\n if (!keycloak) return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n return /*#__PURE__*/React.createElement(ReactKeycloakProvider, {\n initOptions: initOptions,\n authClient: keycloak,\n LoadingComponent: /*#__PURE__*/React.createElement(LoadingComponent, null)\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children));\n};\nexport var defaultKeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256'\n};"],
|
|
5
|
-
"mappings": "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
|
|
4
|
+
"sourcesContent": ["function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\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 { AfterAuth } from \"./afterAuth.mjs\";\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@react-keycloak/web';\nimport { SSRKeycloakProvider, SSRCookies } from '@react-keycloak/ssr';\nimport { useAuthConfig } from \"../hooks/useAuthConfig.mjs\";\nimport { useAuthState } from \"../state/index.mjs\";\nimport { useRouter } from 'next/router';\nvar logger = console;\nexport var KeycloakProvider = function KeycloakProvider(_ref) {\n var _query$idToken, _query$token, _query$refreshToken;\n var children = _ref.children,\n cookies = _ref.cookies,\n debug = _ref.debug,\n keycloakConfig = _ref.keycloakConfig,\n keycloakInitOptions = _ref.keycloakInitOptions,\n loadingComponent = _ref.loadingComponent;\n var authState = useAuthState();\n var LoadingComponent = loadingComponent || function () {\n return /*#__PURE__*/React.createElement(React.Fragment, null, debug ? 'authenticating' : null);\n };\n var _ref2 = MultiPlatform.isNext ? useRouter() : {\n query: {}\n },\n query = _ref2.query;\n var authConfig = useAuthConfig();\n var _useState = useState('idToken' in query && (((_query$idToken = query.idToken) === null || _query$idToken === void 0 ? void 0 : _query$idToken.toString()) || true) || authState.idToken || false),\n _useState2 = _slicedToArray(_useState, 2),\n idToken = _useState2[0],\n setIdToken = _useState2[1];\n var _useState3 = useState('token' in query && (((_query$token = query.token) === null || _query$token === void 0 ? void 0 : _query$token.toString()) || true) || authState.token || false),\n _useState4 = _slicedToArray(_useState3, 2),\n token = _useState4[0],\n setToken = _useState4[1];\n var _useState5 = useState(authConfig.ensureFreshness && ('refreshToken' in query && (((_query$refreshToken = query.refreshToken) === null || _query$refreshToken === void 0 ? void 0 : _query$refreshToken.toString()) || true) || authState.refreshToken) || false),\n _useState6 = _slicedToArray(_useState5, 2),\n refreshToken = _useState6[0],\n setRefreshToken = _useState6[1];\n useEffect(function () {\n var _window2, _window2$ReactNativeW, _window3, _window3$parent;\n if (token !== true && refreshToken !== true && idToken !== true) return;\n if (debug) logger.debug('post message', {\n type: 'LOADED'\n });\n (authConfig.messageHandlerKeys || []).forEach(function (key) {\n var _window, _window$webkit, _window$webkit$messag, _window$webkit$messag2;\n (_window = window) === null || _window === void 0 ? void 0 : (_window$webkit = _window.webkit) === null || _window$webkit === void 0 ? void 0 : (_window$webkit$messag = _window$webkit.messageHandlers) === null || _window$webkit$messag === void 0 ? void 0 : (_window$webkit$messag2 = _window$webkit$messag[key]) === null || _window$webkit$messag2 === void 0 ? void 0 : _window$webkit$messag2.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n });\n (_window2 = window) === null || _window2 === void 0 ? void 0 : (_window2$ReactNativeW = _window2.ReactNativeWebView) === null || _window2$ReactNativeW === void 0 ? void 0 : _window2$ReactNativeW.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n (_window3 = window) === null || _window3 === void 0 ? void 0 : (_window3$parent = _window3.parent) === null || _window3$parent === void 0 ? void 0 : _window3$parent.postMessage(JSON.stringify({\n type: 'LOADED'\n }));\n }, []);\n useEffect(function () {\n if (token !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = e === null || e === void 0 ? void 0 : 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 var message = 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 function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (idToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = e === null || e === void 0 ? void 0 : 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 var message = 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 function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n useEffect(function () {\n if (refreshToken !== true) return;\n var messageCallback = function messageCallback(e) {\n var data = e === null || e === void 0 ? void 0 : 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 var message = 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 function () {\n window.removeEventListener('message', messageCallback);\n };\n }, []);\n var keycloak = useMemo(function () {\n return typeof window !== 'undefined' && new Keycloak({\n url: keycloakConfig.baseUrl,\n realm: keycloakConfig.realm,\n clientId: keycloakConfig.clientId\n });\n }, []);\n var initOptions = useMemo(function () {\n var initOptions = _objectSpread(_objectSpread({}, defaultKeycloakInitOptions), keycloakInitOptions);\n if (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n initOptions.checkLoginIframe = false;\n initOptions.onLoad = undefined;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n if (token === true || refreshToken === true) return /*#__PURE__*/React.createElement(LoadingComponent, null);\n if (cookies && authConfig.ssr) {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(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: /*#__PURE__*/React.createElement(LoadingComponent, null)\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children))\n );\n }\n if (!keycloak) return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n return /*#__PURE__*/React.createElement(ReactKeycloakProvider, {\n initOptions: initOptions,\n authClient: keycloak,\n LoadingComponent: /*#__PURE__*/React.createElement(LoadingComponent, null)\n }, /*#__PURE__*/React.createElement(AfterAuth, null, children));\n};\nexport var defaultKeycloakInitOptions = {\n checkLoginIframe: true,\n checkLoginIframeInterval: 5,\n enableLogging: false,\n onLoad: 'check-sso',\n pkceMethod: 'S256'\n};"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["obj", "KeycloakProvider", "messageCallback", "initOptions"]
|
|
7
7
|
}
|
package/dist/esm/state/index.mjs
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { createStateStore } from "multiplatform.one/zustand";
|
|
2
2
|
var _createStateStore = createStateStore("auth", {
|
|
3
|
-
|
|
4
|
-
refreshToken: ""
|
|
3
|
+
idToken: "",
|
|
4
|
+
refreshToken: "",
|
|
5
|
+
token: ""
|
|
5
6
|
}, void 0, {
|
|
6
7
|
persist: true
|
|
7
8
|
}), useStore = _createStateStore.useStore;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/state/index.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /src/state/index.ts\n * Project: app\n * File Created: 22-11-2022 17:40:53\n * Author: Clay Risser\n * -----\n * Last Modified:
|
|
5
|
-
"mappings": "AAwBA,SAAS,wBAAwB;AACjC,IAAI,oBAAoB,iBAAiB,QAAQ;AAAA,EAC7C,
|
|
4
|
+
"sourcesContent": ["/**\n * File: /src/state/index.ts\n * Project: app\n * File Created: 22-11-2022 17:40:53\n * Author: Clay Risser\n * -----\n * Last Modified: 18-04-2023 00:27:22\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 { createStateStore } from 'multiplatform.one/zustand';\nvar _createStateStore = createStateStore('auth', {\n idToken: '',\n refreshToken: '',\n token: ''\n }, undefined, {\n persist: true\n }),\n useStore = _createStateStore.useStore;\nexport function useAuthState() {\n return useStore();\n}"],
|
|
5
|
+
"mappings": "AAwBA,SAAS,wBAAwB;AACjC,IAAI,oBAAoB,iBAAiB,QAAQ;AAAA,EAC7C,SAAS;AAAA,EACT,cAAc;AAAA,EACd,OAAO;AACT,GAAG,QAAW;AAAA,EACZ,SAAS;AACX,CAAC,GACD,WAAW,kBAAkB;AACxB,SAAS,eAAe;AAC7B,SAAO,SAAS;AAClB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/index.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/index.ts\n * Project: app\n * File Created: 08-11-2022 14:10:44\n * Author: Clay Risser\n * -----\n * Last Modified:
|
|
4
|
+
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/index.ts\n * Project: app\n * File Created: 08-11-2022 14:10:44\n * Author: Clay Risser\n * -----\n * Last Modified: 18-04-2023 00:28:11\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 type { KeycloakResourceAccess, KeycloakRoles, KeycloakTokenParsed } from 'keycloak-js';\nexport * from './useKeycloak';\n\nexport interface IKeycloak {\n authenticated?: boolean;\n idToken?: string;\n realmAccess?: KeycloakRoles;\n refreshToken?: string;\n refreshTokenParsed?: KeycloakTokenParsed;\n resourceAccess?: KeycloakResourceAccess;\n subject?: string;\n token?: string;\n tokenParsed?: ITokenParsed;\n login: () => Promise<unknown> | unknown;\n logout: () => Promise<unknown> | unknown;\n}\n\nexport interface ITokenParsed extends KeycloakTokenParsed {\n 'allowed-origins'?: string[];\n email_verified?: boolean;\n preferred_username?: string;\n scope?: string;\n sid?: string;\n}\n"],
|
|
5
5
|
"mappings": "AAyBA,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/hooks/useKeycloak/useKeycloak.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified:
|
|
4
|
+
"sourcesContent": ["/**\n * File: /src/hooks/useKeycloak/useKeycloak.ts\n * Project: app\n * File Created: 08-11-2022 06:04:59\n * Author: Clay Risser\n * -----\n * Last Modified: 18-04-2023 02:57:42\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 type Keycloak from 'keycloak-js';\nimport type { IKeycloak } from './index';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { useAuthConfig } from '../useAuthConfig';\nimport { useKeycloak as useReactKeycloak } from '@react-keycloak/web';\nimport { useKeycloak as useSsrKeycloak } from '@react-keycloak/ssr';\n\nexport function useKeycloak() {\n const authConfig = useAuthConfig();\n if (MultiPlatform.isStorybook) return { authenticated: true } as IKeycloak;\n if (MultiPlatform.isNext && authConfig.ssr) {\n const { keycloak: ssrKeycloak, initialized } = useSsrKeycloak();\n const keycloak = { ...ssrKeycloak } as Keycloak;\n if (!initialized) keycloak.authenticated = undefined;\n return keycloak as IKeycloak;\n }\n const { keycloak: reactKeycloak, initialized } = useReactKeycloak();\n const keycloak = { ...reactKeycloak } as Keycloak;\n if (!initialized) keycloak.authenticated = undefined;\n return keycloak as IKeycloak;\n}\n"],
|
|
5
5
|
"mappings": "AA0BA,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,eAAe,wBAAwB;AAChD,SAAS,eAAe,sBAAsB;AAEvC,SAAS,cAAc;AAC5B,QAAM,aAAa,cAAc;AACjC,MAAI,cAAc;AAAa,WAAO,EAAE,eAAe,KAAK;AAC5D,MAAI,cAAc,UAAU,WAAW,KAAK;AAC1C,UAAM,EAAE,UAAU,aAAa,aAAAA,aAAY,IAAI,eAAe;AAC9D,UAAMC,YAAW,EAAE,GAAG,YAAY;AAClC,QAAI,CAACD;AAAa,MAAAC,UAAS,gBAAgB;AAC3C,WAAOA;AAAA,EACT;AACA,QAAM,EAAE,UAAU,eAAe,YAAY,IAAI,iBAAiB;AAClE,QAAM,WAAW,EAAE,GAAG,cAAc;AACpC,MAAI,CAAC;AAAa,aAAS,gBAAgB;AAC3C,SAAO;AACT;",
|
|
6
6
|
"names": ["initialized", "keycloak"]
|
|
7
7
|
}
|
|
@@ -5,21 +5,35 @@ import { useKeycloak } from "../hooks";
|
|
|
5
5
|
const logger = console;
|
|
6
6
|
const AfterAuth = ({ children }) => {
|
|
7
7
|
const authConfig = useAuthConfig();
|
|
8
|
-
const { token, refreshToken, authenticated } = useKeycloak();
|
|
8
|
+
const { token, refreshToken, authenticated, idToken } = useKeycloak();
|
|
9
9
|
const authState = useAuthState();
|
|
10
10
|
useEffect(() => {
|
|
11
11
|
if (!authenticated)
|
|
12
12
|
return;
|
|
13
13
|
if (token) {
|
|
14
14
|
authState.setToken(token);
|
|
15
|
+
if (idToken)
|
|
16
|
+
authState.setIdToken(idToken);
|
|
15
17
|
if (authConfig.ensureFreshness && refreshToken)
|
|
16
18
|
authState.setRefreshToken(refreshToken);
|
|
17
19
|
}
|
|
18
|
-
}, [token, refreshToken]);
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
20
|
+
}, [token, refreshToken, idToken]);
|
|
21
|
+
useEffect(() => {
|
|
22
|
+
if (authConfig.debug && authState.token)
|
|
23
|
+
logger.debug("token", authState.token);
|
|
24
|
+
}, [authState.token]);
|
|
25
|
+
useEffect(() => {
|
|
26
|
+
if (authConfig.debug && authState.idToken)
|
|
27
|
+
logger.debug("idToken", authState.idToken);
|
|
28
|
+
}, [authState.idToken]);
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (authConfig.debug && authState.refreshToken)
|
|
31
|
+
logger.debug(authState.refreshToken);
|
|
32
|
+
}, [authState.refreshToken]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (authConfig.debug)
|
|
35
|
+
logger.debug("authenticated", authenticated);
|
|
36
|
+
}, [authenticated]);
|
|
23
37
|
return <>{children}</>;
|
|
24
38
|
};
|
|
25
39
|
export {
|
|
@@ -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 } = useKeycloak();\n const authState = useAuthState();\n\n useEffect(() => {\n if (!authenticated) return;\n if (token) {\n authState.setToken(token);\n if (authConfig.ensureFreshness && refreshToken) authState.setRefreshToken(refreshToken);\n }\n }, [token, refreshToken]);\n\n if (authConfig.debug) {\n logger.debug('
|
|
5
|
-
"mappings": "AAwBA,SAAgB,iBAAiB;AAEjC,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAM5B,MAAM,SAAS;AAER,MAAM,YAAgC,CAAC,EAAE,SAAS,MAAsB;AAC7E,QAAM,aAAa,cAAc;AACjC,QAAM,EAAE,OAAO,cAAc,
|
|
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": "AAwBA,SAAgB,iBAAiB;AAEjC,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAM5B,MAAM,SAAS;AAER,MAAM,YAAgC,CAAC,EAAE,SAAS,MAAsB;AAC7E,QAAM,aAAa,cAAc;AACjC,QAAM,EAAE,OAAO,cAAc,eAAe,QAAQ,IAAI,YAAY;AACpE,QAAM,YAAY,aAAa;AAE/B,YAAU,MAAM;AACd,QAAI,CAAC;AAAe;AACpB,QAAI,OAAO;AACT,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,YAAU,MAAM;AACd,QAAI,WAAW,SAAS,UAAU;AAAO,aAAO,MAAM,SAAS,UAAU,KAAK;AAAA,EAChF,GAAG,CAAC,UAAU,KAAK,CAAC;AAEpB,YAAU,MAAM;AACd,QAAI,WAAW,SAAS,UAAU;AAAS,aAAO,MAAM,WAAW,UAAU,OAAO;AAAA,EACtF,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,YAAU,MAAM;AACd,QAAI,WAAW,SAAS,UAAU;AAAc,aAAO,MAAM,UAAU,YAAY;AAAA,EACrF,GAAG,CAAC,UAAU,YAAY,CAAC;AAE3B,YAAU,MAAM;AACd,QAAI,WAAW;AAAO,aAAO,MAAM,iBAAiB,aAAa;AAAA,EACnE,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO,GAAG,SAAS;AACrB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -20,14 +20,17 @@ const KeycloakProvider = ({
|
|
|
20
20
|
const LoadingComponent = loadingComponent || (() => <>{debug ? "authenticating" : null}</>);
|
|
21
21
|
const { query } = MultiPlatform.isNext ? useRouter() : { query: {} };
|
|
22
22
|
const authConfig = useAuthConfig();
|
|
23
|
+
const [idToken, setIdToken] = useState(
|
|
24
|
+
"idToken" in query && (query.idToken?.toString() || true) || authState.idToken || false
|
|
25
|
+
);
|
|
23
26
|
const [token, setToken] = useState(
|
|
24
27
|
"token" in query && (query.token?.toString() || true) || authState.token || false
|
|
25
28
|
);
|
|
26
29
|
const [refreshToken, setRefreshToken] = useState(
|
|
27
|
-
"refreshToken" in query && (query.refreshToken?.toString() || true) || authState.refreshToken || false
|
|
30
|
+
authConfig.ensureFreshness && ("refreshToken" in query && (query.refreshToken?.toString() || true) || authState.refreshToken) || false
|
|
28
31
|
);
|
|
29
32
|
useEffect(() => {
|
|
30
|
-
if (token !== true && refreshToken !== true)
|
|
33
|
+
if (token !== true && refreshToken !== true && idToken !== true)
|
|
31
34
|
return;
|
|
32
35
|
if (debug)
|
|
33
36
|
logger.debug("post message", { type: "LOADED" });
|
|
@@ -59,11 +62,45 @@ const KeycloakProvider = ({
|
|
|
59
62
|
setToken(message.payload);
|
|
60
63
|
}
|
|
61
64
|
};
|
|
62
|
-
if (debug)
|
|
65
|
+
if (debug) {
|
|
63
66
|
logger.debug("listening for message", {
|
|
64
67
|
type: "TOKEN",
|
|
65
68
|
payload: "<some_token>"
|
|
66
69
|
});
|
|
70
|
+
}
|
|
71
|
+
window.addEventListener("message", messageCallback);
|
|
72
|
+
return () => {
|
|
73
|
+
window.removeEventListener("message", messageCallback);
|
|
74
|
+
};
|
|
75
|
+
}, []);
|
|
76
|
+
useEffect(() => {
|
|
77
|
+
if (idToken !== true)
|
|
78
|
+
return;
|
|
79
|
+
const messageCallback = (e) => {
|
|
80
|
+
let data = e?.data;
|
|
81
|
+
if (typeof data === "string") {
|
|
82
|
+
try {
|
|
83
|
+
data = JSON.parse(data);
|
|
84
|
+
} catch (err) {
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (debug)
|
|
88
|
+
logger.debug("received message", data);
|
|
89
|
+
const message = data;
|
|
90
|
+
if (!message.type)
|
|
91
|
+
return;
|
|
92
|
+
if (message.type.toUpperCase() === "ID_TOKEN" && message.payload) {
|
|
93
|
+
if (debug)
|
|
94
|
+
logger.debug("setting id token", message.payload);
|
|
95
|
+
setIdToken(message.payload);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
if (debug) {
|
|
99
|
+
logger.debug("listening for message", {
|
|
100
|
+
type: "ID_TOKEN",
|
|
101
|
+
payload: "<some_id_token>"
|
|
102
|
+
});
|
|
103
|
+
}
|
|
67
104
|
window.addEventListener("message", messageCallback);
|
|
68
105
|
return () => {
|
|
69
106
|
window.removeEventListener("message", messageCallback);
|
|
@@ -91,11 +128,12 @@ const KeycloakProvider = ({
|
|
|
91
128
|
setRefreshToken(message.payload);
|
|
92
129
|
}
|
|
93
130
|
};
|
|
94
|
-
if (debug)
|
|
131
|
+
if (debug) {
|
|
95
132
|
logger.debug("listening for message", {
|
|
96
133
|
type: "REFRESH_TOKEN",
|
|
97
134
|
payload: "<some_refresh_token>"
|
|
98
135
|
});
|
|
136
|
+
}
|
|
99
137
|
window.addEventListener("message", messageCallback);
|
|
100
138
|
return () => {
|
|
101
139
|
window.removeEventListener("message", messageCallback);
|
|
@@ -114,6 +152,8 @@ const KeycloakProvider = ({
|
|
|
114
152
|
...defaultKeycloakInitOptions,
|
|
115
153
|
...keycloakInitOptions
|
|
116
154
|
};
|
|
155
|
+
if (idToken && typeof idToken === "string")
|
|
156
|
+
initOptions2.idToken = idToken;
|
|
117
157
|
if (token && typeof token === "string") {
|
|
118
158
|
initOptions2.token = token;
|
|
119
159
|
if (refreshToken && typeof refreshToken === "string")
|
|
@@ -122,7 +162,7 @@ const KeycloakProvider = ({
|
|
|
122
162
|
initOptions2.onLoad = void 0;
|
|
123
163
|
}
|
|
124
164
|
return initOptions2;
|
|
125
|
-
}, [keycloakInitOptions, token, refreshToken]);
|
|
165
|
+
}, [keycloakInitOptions, token, refreshToken, idToken]);
|
|
126
166
|
if (token === true || refreshToken === true)
|
|
127
167
|
return <LoadingComponent />;
|
|
128
168
|
if (cookies && authConfig.ssr) {
|
|
@@ -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 { FC, ReactNode, ComponentType } from 'react';\nimport type { KeycloakInitOptions } from 'keycloak-js';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@react-keycloak/web';\nimport { SSRKeycloakProvider, SSRCookies } from '@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 const KeycloakProvider: FC<KeycloakProviderProps> = ({\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 [token, setToken] = useState<string | boolean>(\n ('token' in query && (query.token?.toString() || true)) || authState.token || false,\n );\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n ('refreshToken' in query && (query.refreshToken?.toString() || true)) || authState.refreshToken
|
|
5
|
-
"mappings": "AAwBA,OAAO,cAAc;AACrB,SAAgB,SAAS,WAAW,gBAAgB;AAGpD,SAAS,iBAAiB;AAC1B,SAAS,qBAAqB;AAC9B,SAAS,6BAA6B;AACtC,SAAS,qBAAqB,kBAAkB;AAChD,SAAS,qBAAqB;AAC9B,SAAS,oBAAoB;AAC7B,SAAS,iBAAiB;AAY1B,MAAM,SAAS;AAER,MAAM,mBAA8C,CAAC;AAAA,EAC1D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA6B;AAC3B,QAAM,YAAY,aAAa;AAC/B,QAAM,mBAAmB,qBAAqB,MAAM,GAAG,QAAQ,mBAAmB,KAAK;AACvF,QAAM,EAAE,MAAM,IAAI,cAAc,SAAS,UAAU,IAAI,EAAE,OAAO,CAAC,EAAE;AACnE,QAAM,aAAa,cAAc;AACjC,QAAM,CAAC,OAAO,QAAQ,IAAI;AAAA,IACvB,WAAW,UAAU,MAAM,OAAO,SAAS,KAAK,SAAU,UAAU,SAAS;AAAA,EAChF;AACA,QAAM,CAAC,cAAc,eAAe,IAAI;AAAA,IACrC,kBAAkB,UAAU,MAAM,cAAc,SAAS,KAAK,SAAU,UAAU,
|
|
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 { FC, ReactNode, ComponentType } from 'react';\nimport type { KeycloakInitOptions } from 'keycloak-js';\nimport { AfterAuth } from './afterAuth';\nimport { MultiPlatform } from 'multiplatform.one';\nimport { ReactKeycloakProvider } from '@react-keycloak/web';\nimport { SSRKeycloakProvider, SSRCookies } from '@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 const KeycloakProvider: FC<KeycloakProviderProps> = ({\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)) || authState.idToken || false,\n );\n const [token, setToken] = useState<string | boolean>(\n ('token' in query && (query.token?.toString() || true)) || authState.token || false,\n );\n const [refreshToken, setRefreshToken] = useState<string | boolean>(\n (authConfig.ensureFreshness &&\n (('refreshToken' in query && (query.refreshToken?.toString() || true)) || authState.refreshToken)) ||\n false,\n );\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 (idToken && typeof idToken === 'string') initOptions.idToken = idToken;\n if (token && typeof token === 'string') {\n initOptions.token = token;\n if (refreshToken && typeof refreshToken === 'string') initOptions.refreshToken = refreshToken;\n initOptions.checkLoginIframe = false;\n initOptions.onLoad = undefined;\n }\n return initOptions;\n }, [keycloakInitOptions, token, refreshToken, idToken]);\n\n if (token === 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": ["initOptions"]
|
|
7
7
|
}
|