首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使密码AutoFill与ASWebAuthenticationSession一起工作?

如何使密码AutoFill与ASWebAuthenticationSession一起工作?
EN

Stack Overflow用户
提问于 2020-05-25 18:02:22
回答 2查看 2.4K关注 0票数 4

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

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

这就是我的视图控制器的样子:

代码语言:javascript
复制
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!
    }
}

有没有办法让密码AutoFill通过ASWebAuthenticationSession与移动应用程序协同工作?我也尝试过SFSafariViewController,但同样的问题。我有一个示例iOS应用程序。任何帮助或经验都是非常感谢的!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-05 11:21:54

经过长时间的研究后,我找到的唯一有效和干净的解决方案是,按照建议的这里添加了一个post登录页面。这样,保存凭据提示就不会被忽略。

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

票数 0
EN

Stack Overflow用户

发布于 2020-05-30 14:50:35

来自文档

密码AutoFill只推荐应用程序关联域的凭据,用户在访问这些凭据之前必须使用Face或Touch ID进行身份验证。

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

  1. 将您的应用程序与域相关联,如这里所述。
  2. html标记添加到登录表单中,如这里所述。
  3. 在启动iOS之前,确保用户在ASWebAuthenticationSession设备上进行了正确的身份验证。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62008102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档