2017-08-16 20 views
1

我希望在auth-token的到期時間到來時自動註銷用戶。我將如何派遣註銷操作,而無需訪問商店(因此也無法訪問派遣功能)? 我覺得像是用超時組件包裝每個視圖組件,然後調度註銷似乎在頂部。超時後的Admin-On-Rest自動註銷

當我從issue 229issue 574瞭解在GitHub上有從AOR的終極版商店訪問調度功能,而不是一個部件是不乾淨的方式。

我該如何實現自動註銷(帶有註銷操作的存儲清除)?

回答

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