Skip to content
Snippets Groups Projects
Commit 1c803f9e authored by James Calfee's avatar James Calfee
Browse files

Logout other tabs (work in progress, I plan to force push a bug fix) #667

parent fbb50847
No related branches found
No related tags found
No related merge requests found
...@@ -7,11 +7,17 @@ import Iso from 'iso'; ...@@ -7,11 +7,17 @@ import Iso from 'iso';
import universalRender from 'shared/UniversalRender'; import universalRender from 'shared/UniversalRender';
import ConsoleExports from './utils/ConsoleExports'; import ConsoleExports from './utils/ConsoleExports';
import {serverApiRecordEvent} from 'app/utils/ServerApiClient'; import {serverApiRecordEvent} from 'app/utils/ServerApiClient';
import {logoutStorageHandler} from 'app/redux/UserSaga'
window.onerror = error => { window.onerror = error => {
serverApiRecordEvent('client_error', error); serverApiRecordEvent('client_error', error);
}; };
if(process.env.BROWSER) {
// You must trigger a storage event from another tab or window..
window.addEventListener('storage', logoutStorageHandler, false)
}
Iso.bootstrap(initial_state => { Iso.bootstrap(initial_state => {
console.log('Initial state', initial_state); console.log('Initial state', initial_state);
window.$STM_Config = initial_state.offchain.config; window.$STM_Config = initial_state.offchain.config;
......
...@@ -300,12 +300,31 @@ function* saveLogin_localStorage() { ...@@ -300,12 +300,31 @@ function* saveLogin_localStorage() {
} }
function* logout() { function* logout() {
console.log('logout...');
yield put(user.actions.saveLoginConfirm(false)) // Just incase it is still showing yield put(user.actions.saveLoginConfirm(false)) // Just incase it is still showing
if (process.env.BROWSER) if (process.env.BROWSER) {
localStorage.removeItem('autopost2') localStorage.removeItem('autopost2')
localStorage.logout_event = String(Date.now())
}
serverApiLogout(); serverApiLogout();
} }
function* logoutAction() {
yield put(user.actions.logout())
}
export function logoutStorageHandler(storageEvent) {
console.log('storageEvent', storageEvent)
if(storageEvent.key === 'logout_event') {
const iterator = logoutAction()
let ret
do {
ret = iterator.next()
console.log('ret', ret)
} while(!ret.done)
}
}
function* loginError({payload: {/*error*/}}) { function* loginError({payload: {/*error*/}}) {
serverApiLogout(); serverApiLogout();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment