是否可以为不活动实现自动注销功能?



我正在尝试在使用Firebase时颤振不活动x分钟后实现自动注销功能,身份验证方法是电子邮件。

我在网上搜索过,但我找到的都不是为了颤振。

任何帮助将不胜感激,谢谢!

你可以像这样对所有 API 实例使用拦截器,但要自定义 onRequest 方法。

这个想法是:在发生命中 API 时保存时间信息。 然后,每当出现另一个命中 API 时,请检查从现在到上次保存时间之间的持续时间。

如果持续时间长于,假设 5 分钟,那么您可以调用方法 logout,否则您可以继续请求

这里有一些片段可以说清楚:

Future<Dio> getApiClient() async {
_dio.interceptors.clear();
_dio.interceptors
.add(InterceptorsWrapper(onRequest: (RequestOptions options) {
// Do something before request is sent
var pref = await SharedPreferences.getInstance();
var timeNow = DateTime.now().millisecondsSinceEpoch;
var lastHitApi = pref.getInt(LAST_HIT_API);
var delay = timeNow - lastHitApi;
pref.setInt(LAST_HIT_API, timeNow);
if (delay > DELAY_MAX) {
// do logout here
}

return options;
},onResponse:(Response response) {
// Do something with response data
return response; // continue
}, onError: (DioError error) async {
// Do something with response error
}));
_dio.options.baseUrl = baseUrl;
return _dio;

}

编辑:我想这个更可取

设置超时持续时间并调用注销功能

Timer(Duration(seconds: 5), () => logOut());

最新更新