超时后Admin-On-Rest自动注销

时间:2017-08-16 11:14:06

标签: reactjs redux admin-on-rest

我希望用户在其auth-token的到期时间到来时自动注销。如何在不访问商店(以及调度功能)的情况下调度注销操作? 我想用一个超时组件包装每个视图组件,然后发送注销似乎超过顶部。

正如我从github上的issue 229issue 574理解的那样,当在组件中时,没有干净的方法从AOR的redux存储访问调度函数。

如何实现自动注销(具有商店许可,如注销操作那样)?

1 个答案:

答案 0 :(得分:3)

您可以使用自定义传奇,请参阅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);
}