【问题标题】:How to remove the stored username and password from keychain while uninstalling application in iOS?在 iOS 中卸载应用程序时如何从钥匙串中删除存储的用户名和密码?
【发布时间】:2021-02-03 09:13:43
【问题描述】:

我对为我的应用程序和购物应用程序实施生物识别身份验证非常陌生,我正在使用以下逻辑来实现相同的功能。如果这不是发布此问题的正确位置,请多多包涵。我要求版主转到相应的论坛 .目前,我们仅将用户名存储为 AES 加密格式(甚至不在钥匙串中)。

我能够成功实现相同的功能,但我有一个疑问,如果我卸载应用程序,他们是否会删除钥匙串中存储的凭据。我已经提到了很多这样的问题,但我不能给出一个特定的答案。如果卸载后仍然存在,如何删除这些?

【问题讨论】:

  • 你不能。故事结束。
  • 像世界上所有其他应用程序一样将其存储在钥匙串中,并让 iOS 自动使用 TouchID/FaceID。这不是你要解决的问题。
  • 这是否意味着我的逻辑流程一切正常?我可以继续吗?
  • @ClausJørgensen 先生,您能确认一下吗?
  • 您真正应该做的是让服务器返回一个身份验证令牌(如 OAuth 流),并存储该令牌。这样您就不需要存储用户名和密码。但这当然取决于后端基础设施......

标签: ios objective-c xcode keychain localauthentication


【解决方案1】:

Apple 开发者论坛上有一个post 与此相关。它基本上告诉我们,即使在删除和重新安装应用程序之后,密钥链仍然是持久的(这意味着应用程序在技术上可以再次使用旧密钥)。这种行为并不符合预期(如果您仔细阅读该主题)。

为了应对这种行为,论坛通过在UserDefault 存储中设置一个标志(在卸载应用程序时删除该标志)来提供解决方案。当用户第一次运行应用程序时,清除 KeyChain 并设置标志。这样,您几乎可以确定密钥在首次使用前已被移除。

要直接回答您的问题,(截至目前)无法判断应用何时被卸载并在卸载时采取行动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 2015-09-24
    • 1970-01-01
    相关资源
    最近更新 更多