2017-08-16 7 views
1

自分の認証トークンの有効期限が切れたときに、自動的にログアウトするようにしたいと思います。ストアにアクセスすることなく(したがってディスパッチ機能)、ログアウトアクションをディスパッチするにはどうすればよいですか? タイムアウトコンポーネントですべてのビューコンポーネントをラップして、ログアウトをディスパッチしたような感じです。タイムアウト後の管理時の自動ログアウト

iはgithubの上issue 229issue 574から理解するようない成分でありながらAORのReduxのストアからディスパッチ機能にアクセスするためのないクリーンな方法は存在しません。

私はどのように自動ログアウトを達成しますか(ログアウトアクションのように店舗のクリアランスあり)?

答えて

2

カスタムサガを使用できます(docを参照)。

// in logoutIfTokenExpiredSaga.js 
import { call, put, takeEvery } from 'redux-saga/effects'; 
import { userLogout } from 'admin-on-rest'; 

function getUserToken() { 
    return localStorage.getItem('token'); 
} 

function hasTokenExpired(token) { 
    // Write your custom logic for token expiration check 
} 

function* autoLogout() { 
    const token = yield call(getUserToken); 
    const hasExpired = yield call(hasTokenExpired); 

    if (hasExpired) { 
     yield put(userLogout()); 
    } 
} 

export default function* logoutIfTokenExpiredSaga() { 
    yield takeEvery('AOR/USER_LOGIN_SUCCESS', autoLogout); 
} 
+0

質問を正しく読んだ後に編集されました^^ – Gildas

関連する問題