在显示SFAuthenticationSession提示之前,有没有办法知道是否有可用的cookie?

12
在iOS 11中,苹果引入了一种新的方式来共享Web和移动应用程序之间的身份验证数据,即SFAuthenticationSession
对于从未使用过我的网站的新用户来说,展示SFAuthenticationSession提示并让他们同意,然后什么也得不到并要求他们登录,这将是一种糟糕的用户体验。
苹果方面的documentation相当空洞。这是我找到的唯一example
是否有一种方法可以在显示SFAuthenticationSession提示之前知道是否有可用的cookie?或者,启用关联域名时,当与我的域名进行身份验证时,系统不应该显示提示吗?
1个回答

2
不行。即使没有cookies,用户也可以通过输入用户名/密码并在网站上点击“登录”/“进入”(例如:Facebook、Instagram)来登录。
访问cookies将被禁用:
当网页被呈现时,它在一个单独的进程中运行,因此用户和Web服务可以确保应用程序无法访问用户的凭据。相反,应用程序会获得一个唯一的身份验证令牌。 官方文档 Instagram-OAuth的工作示例:https://github.com/dvdhpkns/SFAuthenticationSession-Instagram-Oauth 你添加的GitHub存储库是作者发布的,用于发送有关本地服务器cookie共享错误的错误报告(rdar://33418129. 原始推文
Safari和SFAuthenticationSession之间的cookie是否共享? @DVDHPKNS 它们应该是共享的,但我们现在有一些时间错误。请就您所看到的内容提交错误报告。 @rmondello(苹果员工)
附注:自您原始发布日期以来,文档中添加了更多信息。

那么这是否意味着现在每当调用SFAuthenticationSession时都会显示一个警报?而且没有办法避免它吗? - user3752049
1
它就像常规权限(例如:相机、通知等),因此我认为没有办法避免,因为它是授权流程的一部分。根据文档:用户会收到一个对话框来给予明确的同意 - nathan
3
是的,你说得对,但是对于相机和通知等功能,这只需要一次提示即可。然而,使用SFAuthenticationSession时,每次都会显示提示。也许我做错了什么。 - user3752049
不,你是对的:SFAuthenticationSession 每次都需要用户接受。 - nathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接