【问题标题】:save username and password in key chain and use that as autofill将用户名和密码保存在钥匙串中并将其用作自动填充
【发布时间】:2020-08-06 22:35:01
【问题描述】:

当用户已经拥有他们的帐户时,我正在尝试实现类似的目标。当他们尝试输入用户名和密码时,我需要显示底部弹出窗口以保存您的密码,例如网站要求在我们登录 safari 时保存我们的凭据。所以如果用户点击保存让它保存在钥匙链中。

下次当用户点击用户名或密码时,将向用户提供自动填充凭据并选择他们的凭据。

我的代码:

   let server = "www.workBro.com"
    let userName = userNameTF.text
    let passWrd = passwordTF.text

    let password = passWrd?.data(using: String.Encoding.utf8)
    var query: [String: Any] = [kSecClass as String: kSecClassInternetPassword,
                                kSecAttrAccount as String: userName,
                                kSecAttrServer as String: self.server,
                                kSecValueData as String: password]
    let status = SecItemAdd(query as CFDictionary, nil)
    if status == errSecSuccess {
        print("success")
    } else {
        print("fail")
    }

我的凭据已保存,我成功了。但它要求我保存您的密码提示警报,就像我们在其他网站上使用移动 safari 登录时得到的一样。

我错过了什么吗?

【问题讨论】:

  • 你弄明白了吗?

标签: ios swift iphone xcode autofill


【解决方案1】:

完整指南在文章iOS 12 Password Tools: Improving User Security and Experience

1-从 Apple 开发者门户获取您应用的标识符

2-在您的应用和 Apple 开发者门户上,您必须启用自动填充兼容性

3-在Web App“Web Server”Supporting Associated Domains in Your App 中添加apple-app-site-association@

4- 在您的应用功能上启用关联域

5-文本字段内容类型必须是属性检查器中的用户名和密码

【讨论】:

  • 我不想访问该网站。我只是想当用户输入他的用户名和密码时我需要显示保存密码......如果用户点击保存密码......在下次登录时我需要从自动填充获取凭据
  • 仅靠编程是无法实现自动填充的。您需要配置您的应用和 Apple 开发者门户以将其保存在 iCloud 钥匙串中
  • 最重要的拼图是apple-app-site-association
  • 是的,所以我理解 1、2、4、5 ..但是 3. 在您的应用程序中支持关联域的 Web 应用程序“Web 服务器”中添加 apple-app-site-association。我必须创建一些文件,并且需要将其添加到我的网络服务器中?。
  • 我可以跳过 3,因为我的应用程序没有任何网络应用程序。我只有移动应用程序。那为什么我需要执行第 3 步?
猜你喜欢
  • 2018-09-04
  • 2019-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
相关资源
最近更新 更多