【发布时间】:2017-11-29 20:45:52
【问题描述】:
TL;DR
我试图了解在使用 SFSafariViewController 通过 Azure 或任何其他 OAuth 提供程序对用户进行身份验证时,用户点击软件键盘上的“开始”按钮和点击身份验证网页上呈现的“登录”按钮之间有什么区别.
说明
- 我们正在使用各种 OAuth 提供程序(Azure、Keycloack 等)来对我们的原生 iOS 应用程序的用户进行身份验证。
- 我们向用户展示带有登录页面的浏览器实例 (SFSafariViewController)
- 此页面包含用户名、密码字段和登录按钮
- 当用户输入密码时,他/她可以使用页面上的
Log In按钮或iOS 软件键盘上的Go按钮 - 在这两种情况下都将触发登录过程,并将用户重定向回正确的 URL
- 但是,如果用户点击软件键盘上的
Go按钮,应用程序不会收到有关重定向的通知(通用链接逻辑不起作用),并且重定向 URL 页面会在 SafariViewController 中呈现 - 它发生在各种 OAuth 提供程序中,并且只能在 iOS 上重现(使用 Android 软件键盘按钮时,通用链接表现良好)
我们现在正在通过创建特殊的重定向页面来处理这种情况,其中包含指向用户要点击的特殊链接。诸如“如果您没有自动重定向回应用程序,请点击此处”之类的内容。但我想知道是否有更好的解决方案,以及用户点击软件键盘按钮和 HTML 页面元素从操作系统/浏览器的角度来看有什么区别。
【问题讨论】:
标签: ios azure oauth ios-universal-links sfsafariviewcontroller