我尝试使用Firebase身份验证方法为电子邮件时,在不活动振奋x分钟后实现自动注销功能。
我已经在网上搜索过,但是无论我发现的是不是颤抖。
任何帮助将不胜感激,谢谢!
答案 0 :(得分:0)
设置超时时间和呼叫注销功能
Timer(Duration(seconds: 5), () => logOut());
答案 1 :(得分:0)
您可以对所有 api 实例(如 this)使用拦截器,但可以自定义 onRequest 方法。
这个想法是:在hit api发生时保存时间信息。然后每当另一个命中 api 发生时,检查现在和上次保存时间之间的持续时间。
如果持续时间超过5分钟,那么你可以调用方法注销,否则你可以继续请求
这里有一些片段来说明:
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;
}
编辑:我想 this 一个更可取