diff --git a/packages/react/src/lib/auth.js b/packages/react/src/lib/auth.js index c3ac9ca586..a9e91467ef 100644 --- a/packages/react/src/lib/auth.js +++ b/packages/react/src/lib/auth.js @@ -1,22 +1,3 @@ -async function saveTokenLocalStorage(token) { - if (typeof localStorage !== 'undefined') { - localStorage.setItem('ec_token', token); - } -} - -async function getTokenLocalStorage() { - if (typeof localStorage !== 'undefined') { - return localStorage.getItem('ec_token'); - } - return null; -} - -async function deleteTokenLocalStorage() { - if (typeof localStorage !== 'undefined') { - localStorage.removeItem('ec_token'); - } -} - async function saveTokenSecure(token) { this.handleSecureLogin('save', token); } @@ -30,7 +11,7 @@ async function deleteTokenSecure() { this.handleSecureLogin('delete'); } -export function getTokenStorage(secure = false) { +export function getTokenStorage(secure = false, key = 'ec_token') { if (secure) { return { saveToken: saveTokenSecure, @@ -39,8 +20,21 @@ export function getTokenStorage(secure = false) { }; } return { - saveToken: saveTokenLocalStorage, - getToken: getTokenLocalStorage, - deleteToken: deleteTokenLocalStorage, + saveToken: (token) => { + if (typeof localStorage !== 'undefined') { + localStorage.setItem(key, token); + } + }, + getToken: () => { + if (typeof localStorage !== 'undefined') { + return localStorage.getItem(key); + } + return null; + }, + deleteToken: () => { + if (typeof localStorage !== 'undefined') { + localStorage.removeItem(key); + } + }, }; } diff --git a/packages/react/src/views/EmbeddedChat.js b/packages/react/src/views/EmbeddedChat.js index f3b94c7b48..b18b538e81 100644 --- a/packages/react/src/views/EmbeddedChat.js +++ b/packages/react/src/views/EmbeddedChat.js @@ -64,7 +64,14 @@ const EmbeddedChat = (props) => { const { classNames, styleOverrides } = useComponentOverrides('EmbeddedChat'); const [fullScreen, setFullScreen] = useState(false); const [isSynced, setIsSynced] = useState(!remoteOpt); - const { getToken, saveToken, deleteToken } = getTokenStorage(secure); + const storageKey = useMemo( + () => `ec_token_${host}_${roomId}`, + [host, roomId] + ); + const { getToken, saveToken, deleteToken } = useMemo( + () => getTokenStorage(secure, storageKey), + [secure, storageKey] + ); const { setIsUserAuthenticated, setUsername: setAuthenticatedUsername,