Ios 如何为多人使用的登录终端从oauth中删除Google缓存/cookies

Ios 如何为多人使用的登录终端从oauth中删除Google缓存/cookies,ios,swift,react-native,webkit,google-signin,Ios,Swift,React Native,Webkit,Google Signin,我正在创建一个用于公共区域的应用程序。人们将登上安装好的iPad登录,然后继续使用该应用程序并注销。默认功能保留他们的谷歌登录信息。我不想这样,我想在注销时删除所有谷歌认证数据,这样我们就没有账户列表了 我在这里找到了一些资源,所以没有人使用react native,也许这就是我的问题?这是通过包react native google sign-in运行的,它是GIDSignIn的包装,我找不到这个包打开webview控制器的位置,所以我认为最好的解决方案是删除缓存/cookie 我在react

我正在创建一个用于公共区域的应用程序。人们将登上安装好的iPad登录,然后继续使用该应用程序并注销。默认功能保留他们的谷歌登录信息。我不想这样,我想在注销时删除所有谷歌认证数据,这样我们就没有账户列表了

我在这里找到了一些资源,所以没有人使用react native,也许这就是我的问题?这是通过包
react native google sign-in
运行的,它是
GIDSignIn
的包装,我找不到这个包打开webview控制器的位置,所以我认为最好的解决方案是删除缓存/cookie

我在react native和ios之间建立了一座桥梁,因此我能够编写Swift。我尝试了几种方法,但似乎没有一种方法返回任何登录信息供我删除

  let dataStore = WKWebsiteDataStore.default()
  dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { (records) in
    print("MARK: RECORDS \(records)")
    for record in records {
      if record.displayName.contains("google") {
        dataStore.removeData(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), for: [record], completionHandler: {
          print("Deleted: " + record.displayName);
        })
      }
    }
  }
我也试过这个:

  if let cookies = HTTPCookieStorage.shared.cookies {
      for cookie in cookies {
          print("MARK: COOOKIE \(cookie)")
          HTTPCookieStorage.shared.deleteCookie(cookie)
      }
  }
但这里我只得到一个空数组

这一次似乎很有希望。。找到这个东西所在的文件夹并将其删除?但我不能100%确定它是如何工作的/在哪里查找缓存数据

  var libraryPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.libraryDirectory, FileManager.SearchPathDomainMask.userDomainMask, true).first!
  libraryPath += "/Cookies"

  do {
    let result = try FileManager.default.removeItem(atPath: libraryPath)
    print("MARK: SUCCESSSSS \(result)")
  } catch {
    print("MARK: error")
  }
不走运。得到一个空数组。我还从这个响应中得到了一个空数组

  HTTPCookieStorage.shared.removeCookies(since: Date.distantPast)
  print("MARK: [WebCacheCleaner] All cookies deleted")

  WKWebsiteDataStore.default().fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { records in
    records.forEach { record in
      WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {})
      print("MARK: [WebCacheCleaner] Record \(record) deleted")
    }
  }
我在每一次尝试中都添加了以下内容:

URLCache.shared.removeAllCachedResponses()

我甚至不知道这些过去的登录是否存储为“cookies”,我只知道当我进入设置>Safari>删除网站数据时。。。账户被删除。其中一些尝试是我将obj-c翻译成swift的,如果有什么错误,那将非常有帮助。

同样的问题。你找到解决办法了吗?如果我有任何进展,我会发帖的。我的预算用完了,因为找不到解决方案,所以不得不完全删除gmail。我很想知道你是否找到了什么。