Reactjs Rest管理员超时后自动注销

Reactjs Rest管理员超时后自动注销,reactjs,redux,admin-on-rest,Reactjs,Redux,Admin On Rest,我希望用户在其身份验证令牌到期时自动注销。我如何在没有访问商店(因此也没有分派功能)的情况下分派注销操作? 我想用一个超时组件包装每个视图组件,然后发送注销,这似乎有些过头了 据我从github和github上了解,在不在组件中的情况下,无法从AOR的redux存储访问分派函数 我如何实现自动注销(如注销操作一样,通过店铺清关)?您可以使用自定义传奇,请参阅 // in logoutIfTokenExpiredSaga.js import { call, put, takeEvery } fro

我希望用户在其身份验证令牌到期时自动注销。我如何在没有访问商店(因此也没有分派功能)的情况下分派注销操作? 我想用一个超时组件包装每个视图组件,然后发送注销,这似乎有些过头了

据我从github和github上了解,在不在组件中的情况下,无法从AOR的redux存储访问分派函数


我如何实现自动注销(如注销操作一样,通过店铺清关)?

您可以使用自定义传奇,请参阅

// 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);
}