问题标签 [sfauthenticationsession]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
331 浏览

ios - SFAuthenticationSession 的限制

Apple 的 SFAuthenticationSession 文档称,它允许“连同 cookie 和网站数据”共享登录信息。我的问题是 cookie 是否有任何限制,以及“数据”究竟意味着什么。

我见过这样一种情况,即在 SFAuthenticationSession 的一个实例中设置的 cookie 在另一个实例中似乎不存在(或可用)。是否只有某些 cookie 以这种方式通过?

(如果有人知道任何工具可以检查 SFAuthenticationSession 实例中存在的确切 cookie,请告诉我。我尝试了 Web Inspector,但它只是说“没有可检查的应用程序”。我可以让 Web Inspector 与 Safari 一起工作。注意我不认为 Javascript 会起作用,因为我想查看所有域的 cookie。)

0 投票
0 回答
515 浏览

keycloak - Keycloak 和 SSO 与 SAML 和 Safari

我们正在使用 keycloak 3.4.2 来尝试集成 SSO 行为(通过 SAML)。我在同一个领域配置了两个客户端;如果用户登录到 clientA 并且他在同一个浏览器中打开一个新选项卡并登录到 clientB 他成功地自动登录。

但我们正在尝试整合以下行为: - 从 ipad 用户打开 safari 并转到站点 A - 他成功登录到站点 A - 从站点 A 他单击“通用链接”以打开以前安装的应用程序,这只是一个 webview到站点 B。

当前结果是用户登陆应用程序的登录页面。

预期结果是用户自动登录。

我们将 iOS 11 用于前端。站点 A 和站点 B 都有一个用 Java6 编写的后端。

我们的想法是通过使用 iOS 小部件“SFAuthenticationSession”将站点 A 的所有 cookie 重用到具有站点 B 的 webview 的应用程序;但是一旦登录,唯一可用的 cookie 就是 JSESSIONID,我认为这还不够。在我的测试中,当我只使用具有不同选项卡的浏览器时,对于每个不同的选项卡,我都有不同的 JSESSIONID,因此我希望在登陆站点 B 时有不同的 JSESSIONID。

我们的方法取自当前源代码:

https://github.com/dvdhpkns/SFAuthenticationSession-example

那么我们能做些什么来完成我们的任务呢?

我们缺少什么?我们需要任何其他令牌/cookie 吗?如何找回它们?什么时候 ?

我希望我清楚地解释了问题,对不起,但身份验证问题不是我的强项。

0 投票
1 回答
724 浏览

ios - 为什么 SFAuthenticationSession 同意警报显示 Xcode 项目名称而不是 App 名称?

我正在使用SFAuthenticationSession通过OAuth2.

用户必须同意的同意将以下消息显示为警报:

“[Xcode-Project-Name]”想要使用“[Server-URL]”登录。这允许应用程序和网站共享有关您的信息。

为什么没有提到应用显示名称?

会是App Store提交后的App名称吗?

0 投票
1 回答
1029 浏览

ios - SFAuthenticationSession appearance

How can I change tintColor and barTintColor on the SafariVC that is presented when using SFAuthenticationSession ?

I tried to change UINavigationBar and UIToolBar and UIBarButtonItem appearance but it doesn't respect them.

Thanks

0 投票
0 回答
243 浏览

ios - 通过其他应用程序进行 OAuth 后自动登录新应用程序下载(iOS 11)

我有一个允许通过 OAuth 登录的网站,用户可以使用第 3 方 iPhone 应用程序登录。稍后,如果同一设备上的同一用户通过 App Store 下载官方第一方应用程序,我会喜欢在首次启动时自动登录,无需任何登录提示(因为他们已经通过 3rd 方应用程序登录)。

根据研究,这似乎在 iOS 9 和 10 中是可能的,使用隐藏的SFSafariViewController. 但是 iOS 11 禁用了 Safari 实例之间的会话共享,我们应该使用SFAuthenticationSession. 目前尚不清楚下载的第一方应用程序是否可以使用SFAuthenticationSession. 这里有什么解决方案吗?

0 投票
0 回答
1343 浏览

ios - 未调用 SFAuthenticationSession 完成处理程序

我正在尝试实现一种从 Safari 和 App 交换 cookie 的方法。我正在使用SFAuthenticationSession,因为 cookie 共享被禁用。我通读了该主题,似乎这是实现这一目标的最佳解决方案。没有太多博客或存储库可以用作示例。

我已经在服务器端实现了更改重定向,如下所示。

首先,我将 cookie 存储为https://example.com/?cookie=12345. 然后从应用程序我启动一个身份验证会话,指向https://example.com/getcookie重定向到customapp://dummy/cookies?cookie=12345

一旦表明这一点。快速实现如下(感谢this):

您可能会注意到我对登录不感兴趣,而是对以前存储的 cookie 感兴趣。

有人可以请教吗?我的问题是,虽然网站正在重定向,但没有调用完成处理程序,所以我无法解析回调 url。

更新

我发现我在Info.plist. 在向其添加自定义协议后,将调用处理程序。尽管如此,处理程序只是在我第二次参与身份验证会话时才被调用。

有什么线索吗?

0 投票
0 回答
333 浏览

ios - 从 Firebase 云函数调用自定义 URL 方案 (myapp://)

我正在尝试使用 Instagram 登录 iOS 应用程序。我正在尝试这样做,但SFAuthenticationSession不幸的是,它SFAuthenticationSession要求它callbackURL是一个自定义的(如myapp://),而 Instagram只允许 http/https将链接作为重定向 URI。

我想出的解决方案是为 Instagram 提供一个 URLFirebase Cloud Function并在我的云函数中执行重定向另一个请求myapp://something到.

request模块只发出http/https请求,我还没有找到一种方法来简单地调用我的自定义 URL。

据我观察,SFAuthenticationSession只有当用户取消或事物检测到对提供的调用时,才会调用回调闭包callbackURLScheme

你们能帮帮我吗?谢谢你。

0 投票
3 回答
4974 浏览

ios - SFAuthenticationSession 如何在 Safari 中存储会话相关的 cookie

tl;博士阅读最后一段。

我正在使用 AppAuth ( https://github.com/openid/AppAuth-iOS ) 库来处理基于 OpenID 的用户身份验证,我想通过我的应用程序为其提供 SSO 体验。我的应用程序的部署目标是 iOS 11,这意味着 AppAuth 内部使用SFAuthenticationSession. 我正在使用授权流程,这意味着通过SFAuthenticationSession. 当用户填写并提交凭证SFAuthenticationSession时,使用 url 调用完成(如果成功),code可以从中解析授权。通过授权code,令牌 POST 请求通过URLSession独立发出SFAuthenticationSession并被access_token检索。

整个流程是成功的,包括检索access_token,但是当我离开应用程序并在 Safari 中打开服务提供商提供的用户个人资料网页时,用户没有登录。我用谷歌帐户测试了相同的流程(https:// accounts.google.com)和 SSO 工作正常,例如,当我在 Safari 中打开https://mail.google.com时,我已登录。所以我怀疑我的服务提供商做错了什么。也许他们没有为我提供正确的范围?但在联系他们之前,我想排除我的任何过错。现在我最直接的想法是会话相关的 cookie 不会以某种方式存储在 Safari 中。我的问题由此而来。

我的问题。令牌 POST 请求是独立于SFAuthenticationSession(不同的用户代理)发出的,那么如果不通过,任何与会话相关的 cookie 如何存储在设备(Safari)上SFAuthenticationSession?有没有办法在代码中调试 cookie 存储?

0 投票
1 回答
1832 浏览

ios - 使用 SFSafariViewController 代替 ASWebAuthenticationSession/SFAuthenticationSession 进行 OAuth

我们的用户体验团队不喜欢每次打开登录页面时都会弹出同意书。此外,我们希望自定义使用ASWebAuthenticationSession/SFAuthenticationSession.

由于上述原因,我正在考虑更改实现并SFSafariViewController直接用于身份验证。

虽然我没有找到任何参考资料,但我担心如果使用SFSafariViewControllerOAuth 会在 Appstore 提交中出现问题,因为 Apple 已经以ASWebAuthenticationSession/SFAuthenticationSession?有人对此有看法吗?

0 投票
1 回答
668 浏览

ios - 登录 SFAuthenticationSession 然后在 SFSafariViewController 中打开一个执行 SSO 的链接

我正在使用 AppAuth-iOS 进行 AD B2C 登录,AppAuth-iOS 使用 SFAuthenticationSession 在 iOS 11+ 上发出身份验证请求。我假设当我调用 SFSafariViewController 打开一个指向与 B2C 进行 SSO 的 web 应用程序的链接时,它会自动对用户进行身份验证。但是,这似乎不起作用。

它不应该工作吗?我做错了吗?

我尝试在我的项目中修改 AppAuth-iOS pod,并尝试在 webview 中打开身份验证请求并使用 webview 来打开链接.. 不起作用。另外,我读过关于 Safari 不共享 cookie 的实例,这也适用于 webview 吗?webview 是否使用 Safari 浏览器?我还阅读了与此问题相关的其他内容,但它们让我感到困惑,最后,对我来说,它们并没有结束。

这是来自 AppAuth-iOS 的 OIDExternalUserAgentIOS.m 的代码,用于将应用程序与 B2C 登录进行通信:

我使用此代码打开链接,

我希望 SSO 将在 SFAuthenticationSession 和 SFSafariViewController 之间工作。

非常感谢你。