我有一个使用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": "/"
}
我相信现在已经修复了iOS 12.2 Beta 1上的Safari:https://twitter.com/tomayac/status/1089819735292866560