1

当我使用用于在线身份验证的服务时,我会获得一个导航到的 URL,该 URL 将自动打开一个用于输入密码的应用程序。

网址格式如下:

bankid:///?autostarttoken=2a1b5e2c-c9fb-4402-1239-2a1619d655e9&redirect=null

此类网址的导航仅在安装了某个应用程序的移动设备上才有意义。

尽管如此,桌面浏览器(不是每个人)也会尝试导航到这样的 url,就像它曾经可能的那样。这当然会导致错误页面。

他们为什么这样做?

我需要使用隐藏表格吗?

每个移动单位都会尊重这一点吗?

4

1 回答 1

1

自定义 URL 方案用于能够在本地启动应用程序,在本例中是处理 2FA 的 BankID 客户端。

只要注册了自定义 url 方案,这在移动和桌面上都可以很好地工作。AFAIK for mobile,如果 URL 方案未在本地注册,它将查询应用商店并让用户从那里安装。银行 ID 在应用商店中适用于 iPhone 和 Android。在 Windows 上,它也会查询应用商店,但 BankID 客户端不能作为 Windows 应用程序使用,因此必须从https://install.bankid.com手动安装。在 Mac 上,我不知道它是否会查询应用商店,但我知道它必须从https://install.bankid.com手动安装

Android、iPhone、Windows Phone、Windows mobile、Windows XP 及更高版本、MacOSX 都支持自定义 URL 方案,但浏览器也需要支持,所有主要浏览器都这样做。

从历史上看,在移动之前,我们曾经使用浏览器中的 NSS 插件支持来启动程序。NSS 插件支持已被浏览器删除,因为从安全角度来看,它很容易被误用。

这就是使用自定义 URL 方案的原因。

正如您在BankID 依赖方指南中所读到的那样,可以使用https://app.bankid.com链接来启动客户端。基本上,这只是一个类似于 bankid:// 的自定义 url 方案,但同时注册了协议 (https://) 和主机 (app.bankid.com),然后启动应用程序。这有一个额外的好处,如果没有安装客户端并且无法通过应用商店或类似网站找到客户端的用户,将获得可用的网站,然后可以帮助用户安装客户端。

由于 applink 的想法是在 URL 未在本地注册的情况下让用户导航到网站,因此不要隐藏导航。

于 2019-03-30T07:23:19.300 回答