我有一个使用 LinkedIn's OAuth API 处理用户登录的网络应用程序.该页面重定向到 LinkedIn 的域,然后在用户通过身份验证后返回到我的域。当我的应用程序在通过 Safari 添加到 iOS 主屏幕后运行时,LinkedIn 身份验证页面在 Safari 中打开,而不是在主屏幕应用程序中打开。
我认为这是因为 linkedin.com 超出了我应用程序网络 list 中的 scope
属性?
有没有人有解决方案来在主屏幕应用程序中保持这样的整个跨域登录流程?我也在尝试弄清楚这种行为是否符合规范的精神(或者这种行为是否未定义)。
在 Android 版 Chrome 的主屏幕应用程序中似乎优先包含跨域重定向:
https://bugs.chromium.org/p/chromium/issues/detail?id=771418
Standalone PWA breaks login
您可以通过在 fizzr.io 尝试登录 LinkedIn 来查看行为在 iOS 上将登录页面添加到主屏幕后。只需点击 LinkedIn 按钮即可在 Safari 中打开外部登录流程。
这是我的应用 list :
{
"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
关于ios - 如何阻止来自 iOS 主屏幕 PWA 的第 3 方登录流程在 Safari 中打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51022202/