繁体   English   中英

如何让密码自动填充与 ASWebAuthenticationSession 一起使用?

[英]How to get Password AutoFill to work with ASWebAuthenticationSession?

我有一个遵循密码自动填充要求的示例 HTML 表格。 在没有应用程序的情况下导航到 web 页面时,使用内置的 Safari 应用程序,用于登录和注册 forms 的本机密码自动填充对话框正确显示:

在此处输入图像描述

但是,在应用程序中查看时,相同的流程不会在登录或注册提交中触发对话框。 它只是关闭登录/注册屏幕而没有任何错误。

这就是我的观点 controller 的样子:

class ViewController: UIViewController {

    @IBAction func didTapLoginButton() {
        let session = ASWebAuthenticationSession(
            url: URL(string: "https://example.com/login.html")!,
            callbackURLScheme: "customscheme") {
                print($0, $1)
        }

        session.prefersEphemeralWebBrowserSession = true
        session.presentationContextProvider = self
        session.start()
    }
}

extension ViewController: ASWebAuthenticationPresentationContextProviding {

    func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {
        view.window!
    }
}

有没有办法通过ASWebAuthenticationSession使密码自动填充与移动应用程序一起使用? 我也试过SFSafariViewController但同样的问题。 在这里有一个示例 iOS 应用程序 非常感谢任何帮助或经验!

文档

密码自动填充仅建议您的应用关联域使用凭据,并且用户必须在访问这些凭据之前使用 Face ID 或 Touch ID 进行身份验证。

确保应用与您的域相关联(代码中的example.com )。 这将允许 iCloud 钥匙串识别登录表单并建议该域的任何存储凭据。

  1. 将您的应用与域相关联,如此所述。
  2. html标签添加到您的登录表单中,如此所述。
  3. 在启动ASWebAuthenticationSession之前,确保用户在 iOS 设备上得到了正确的身份验证。

经过长时间的研究后,我发现的唯一有效且干净的解决方案是按照 此处的建议添加登录后页面 这样保存凭据提示将不会被忽略。

不幸的是,我没有从 iOS 方面找到任何解决方案,非常感谢,因为在我的情况下,由于项目限制,我无法更改服务器端。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM