Реагировать на собственного пользователя выхода из системы, если он не используется или неактивен в течение определенного периода времени - PullRequest
0 голосов
/ 17 мая 2019

Я использую response-redux, и мне нужно иметь возможность выйти из системы пользователя, если он неактивен в течение 10 минут (без прикосновений к экрану) или если приложение переходит в фоновый режим.Как мне это сделать?

Я попытался создать таймер в моем корневом контейнере и обновил редуктор, который обновляется каждые х секунд или около того, и использовал жест панорамирования для сброса таймера при наличии касаний.Но это не сработало, потому что каждый раз, когда обновляется состояние приращения, мое приложение обновляется само.

У кого-нибудь есть какие-нибудь решения?Я пытался найти пакет npm, который делает что-то похожее, но безуспешно.

Ответы [ 3 ]

0 голосов
/ 17 мая 2019

Лучший способ защитить и ограничить время входа в систему - использовать токен JWT для обеспечения его безопасности и ограничения времени сеанса, который вы хотите закрыть через определенное время

0 голосов
/ 17 мая 2019

Вы можете использовать https://facebook.github.io/react-native/docs/appstate, чтобы узнать, когда приложение находится в фоновом режиме или на переднем плане.

Поэтому, когда приложение переходит в фоновый режим, вы можете отправить действие, устанавливающее текущее время.

И когда приложение выходит на передний план, вы проверяете разницу между текущим временем и временем отправки (когда приложение стало фоновым).Вы можете делать все, что хотите, если условие соответствует.

componentDidMount() {
    AppState.addEventListener('change', this._handleAppStateChange);
}

componentWillUnmount() {
    AppState.removeEventListener('change', this._handleAppStateChange);
}

_handleAppStateChange = (nextAppState) => {
    const { appState } = this.state;
    if (appState.match(/inactive|background/) && nextAppState === 'active') {

        // Compare Current Time with Dispatched Time Here

    } else if (appState.match(/inactive|active/) && nextAppState === 'background') {

        // Dispatch current time here.

    }
    this.setState({appState: nextAppState});
};
0 голосов
/ 17 мая 2019

Вы можете интегрировать этот пакет npm react-native-background-timer Это может запустить блок кода (функция выхода из системы) после указанного интервала времени.

...