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

时间:2019-09-20 17:41:34

标签: firebase email flutter logout auto

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

我已经在网上搜索过,但是无论我发现的是不是颤抖。

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

2 个答案:

答案 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 一个更可取