如何阻止从Safari打开iOS主屏幕PWA的第三方登录流程?

时间:2018-06-25 11:17:05

标签: ios safari progressive-web-apps

我有一个使用LinkedIn's OAuth API处理用户登录的Web应用程序。该页面重定向到LinkedIn的域,然后在用户通过身份验证后返回我的域。通过Safari将我的应用程序添加到iOS上的主屏幕后运行我的应用程序时,LinkedIn身份验证页面将在Safari中打开,而不是在主屏幕应用程序中打开。

我认为这是因为linkedin.com在应用程序的网络清单的scope属性之外?

是否有人可以在主屏幕应用程序中保留这样的整个跨域登录流程?我还试图找出这种行为是否符合规范的精神(或者这种行为是否未定义)。

Android的Chrome浏览器的主屏幕应用中似乎包含跨域重定向的优先级:

https://bugs.chromium.org/p/chromium/issues/detail?id=771418
Standalone PWA breaks login

将登录页面添加到iOS的主屏幕后,您可以尝试通过fizzr.io上的LinkedIn登录来查看此行为。只需点击LinkedIn按钮,即可在Safari中从外部打开登录流程。

这是我的应用清单:

{
    "name": "fizzr.io",
    "short_name": "fizzr.io",
    "icons": [
        {
            "src": "app-icon-192.png",
            "sizes": "192x192",
            "type": "image/png"
        },
        {
            "src": "app-icon-512.png",
            "sizes": "512x512",
            "type": "image/png"
        }
    ],
    "theme_color": "#ffffff",
    "background_color": "#ffffff",
    "display": "standalone",
    "start_url": "/",
    "scope": "/"
}

1 个答案:

答案 0 :(得分:0)

我认为自iOS 12.2 Beta 1的Safari起,此问题现已修复。 https://twitter.com/tomayac/status/1089819735292866560