diff --git a/commands/serve/web/components/Hub/SelectEngine/ConnectionGuid.jsx b/commands/serve/web/components/Hub/SelectEngine/ConnectionGuid.jsx index b113bcab0..22d7a1947 100644 --- a/commands/serve/web/components/Hub/SelectEngine/ConnectionGuid.jsx +++ b/commands/serve/web/components/Hub/SelectEngine/ConnectionGuid.jsx @@ -71,6 +71,14 @@ const ConnectionGuid = ({ showGuid }) => ( {window.location.host} needs to be whitelisted in QMC in your Qlik Sense on Windows deployment. In addition, you need to enable Has secure attribute and set SameSite attribute to None.
+ Also some "Additional reponse headers" needs to align with the whitelisted domain: + Make sure you are logged in to Qlik Sense in another browser tab. diff --git a/commands/serve/web/connect.js b/commands/serve/web/connect.js index 9a0ea6ea2..c49484bd9 100644 --- a/commands/serve/web/connect.js +++ b/commands/serve/web/connect.js @@ -168,7 +168,9 @@ const connect = async () => { }; } - const csrfToken = await getCsrfToken(`https://${enigmaInfo.host}/${enigmaInfo.prefix}`); + const csrfToken = await getCsrfToken( + `https://${enigmaInfo.host}${enigmaInfo.prefix ? `/${enigmaInfo.prefix}` : ''}` + ); const url = SenseUtilities.buildUrl({ secure: false, ...enigmaInfo, diff --git a/commands/serve/web/hooks/useOpenApp.js b/commands/serve/web/hooks/useOpenApp.js index fff9c62d8..166a984cc 100644 --- a/commands/serve/web/hooks/useOpenApp.js +++ b/commands/serve/web/hooks/useOpenApp.js @@ -30,7 +30,9 @@ export const useOpenApp = ({ info }) => { const { webSocketUrl } = await (await fetch(`/auth/getSocketUrl/${info?.enigma.appId}`)).json(); url = webSocketUrl; } else { - const csrfToken = await getCsrfToken(`https://${enigmaInfo.host}/${enigmaInfo.prefix}`); + const csrfToken = await getCsrfToken( + `https://${enigmaInfo.host}${enigmaInfo.prefix ? `/${enigmaInfo.prefix}` : ''}` + ); url = SenseUtilities.buildUrl({ ...enigmaInfo, ...{ urlParams: { 'qlik-csrf-token': csrfToken } } }); } diff --git a/commands/serve/web/utils/getCsrfToken.js b/commands/serve/web/utils/getCsrfToken.js index 9288b259e..27aa1fd70 100644 --- a/commands/serve/web/utils/getCsrfToken.js +++ b/commands/serve/web/utils/getCsrfToken.js @@ -1,7 +1,11 @@ export default async function getCsrfToken(host) { try { const res = await fetch(`${host}/qps/csrftoken`, { credentials: 'include' }); - return res.headers.get('QLIK-CSRF-TOKEN'); + const token = res.headers.get('QLIK-CSRF-TOKEN'); + if (token) { + return token; + } + return ''; } catch (err) { console.log('Failed to fetch csrf-token', err); }