【问题标题】:Is there a way to know if there is a cookie available before showing the SFAuthenticationSession prompt有没有办法在显示 SFAuthenticationSession 提示之前知道是否有可用的 cookie
【发布时间】:2017-08-19 04:58:31
【问题描述】:

在 iOS 11 上,Apple 引入了一种在网络和移动应用程序之间共享身份验证数据的新方法,SFAuthenticationSession

向每个可能从未使用过我的网站的新用户显示 SFAuthenticationSession 提示以让他们同意,然后什么也没得到并要求他们登录,这将是一种糟糕的用户体验。

documentation 在 Apple 方面相当空旷。这是我找到的唯一example

有没有办法知道在显示SFAuthenticationSession 提示之前 是否有可用的cookie?或者,启用Associated Domains 后,在使用我的域进行身份验证时,系统不应显示提示?

【问题讨论】:

    标签: ios authentication oauth ios11 sfauthenticationsession


    【解决方案1】:

    没有。即使没有 cookie,用户也可以登录输入他的用户名/密码,然后点击网站上的“登录”/“进入”(例如:Facebook、Instagram)。

    无法访问 cookie:

    当网页呈现时,它在一个单独的进程中运行,因此可以保证用户和 Web 服务应用程序无法访问用户的凭据。相反,应用程序会获得一个唯一的身份验证令牌。 Official docs

    Instagram-OAuth 的工作示例:https://github.com/dvdhpkns/SFAuthenticationSession-Instagram-Oauth


    您添加的 GitHub 存储库是作者发布的,用于发送有关本地服务器 cookie 共享错误的错误报告 (rdar://33418129.Original tweet)

    Safari 和 SFAuthenticationSession 之间是否共享 cookie? @DVDHPKNS

    它们应该是共享的,但我们现在有一些时间错误。请就您所看到的内容提交错误。 @rmondello(苹果员工)

    P.S:自您的原始发布日期以来,他们在文档中添加了更多信息。

    【讨论】:

    • 这是否意味着现在每当调用 SFAuthenticationSession 时都会显示警报?没有办法避免吗?
    • 这就像一个常规权限(例如:相机、通知等),所以没有办法避免它,因为它是授权流程的一部分。来自文档:`对话框提示用户明确同意`
    • 是的,你是对的,但对于相机和通知等,它是一次性提示。使用 SFAuthenticationSession 虽然每次都会显示提示。也许我做错了什么。
    • 不,你是对的:SFAuthenticationSession 每次都会要求用户接受。
    猜你喜欢
    • 2021-11-23
    • 2020-07-14
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多