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

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

我在网上搜索过,但我发现的都不是为了 flutter 。

非常感谢任何帮助,谢谢!

最佳答案

您可以对所有 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一个更可取

https://stackoverflow.com/questions/58032966/

相关文章:

reactjs - react native : Module RCTLog is not a re

postgresql - 如何为 linux、Fedora 安装 psycopg2

node.js - 将参数/通配符定义为 npm 脚本键/名称的一部分

python - TensorFlow 无法将字符串类型的 Tensor 复制到设备

c# - OmniSharp MSBuild ProjectManager 无法更新我的 .cspr

android-management-api - Google Pixel 设备在发出重启命令后重启

database - 使用扇出写入方法根据隐私设置(PostgreSQL、Redis)更新 Feed

c# - 如何在 ConfigureServices 方法中使用 ASP.NET Core 2.1

c# - Automapper:对所有其他成员使用默认映射

reactjs - `react-dom` 是库还是框架?