我正在使用react-redux,如果他们在10分钟内处于非活动状态(屏幕上没有触摸)或应用进入后台,则需要能够注销该用户。我应该怎么做?
我尝试在根容器中创建一个计时器,并更新每x秒左右更新的reducer,并使用平移手势在触摸时重置计时器。但这没有用,因为每次redux状态更新时,我的应用程序都会刷新。
有人有什么解决办法吗?我试图寻找一个功能类似但没有运气的npm包裹。
答案 0 :(得分:0)
您可以集成此npm软件包react-native-background-timer
在指定的时间间隔后,这可以运行一段代码(注销功能)。
答案 1 :(得分:0)
保护和限制登录时间的最佳方法是使用JWT令牌使其安全,并确保一定时间后您要关闭的会话的时间限制
答案 2 :(得分:0)
您可以使用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});
};