Ios 我可以在SFSafariViewController中从Safari获取Cookie吗?
tl;博士见下面的问题 在我的应用程序中,我有一个使用SFSafariViewController和遵循OAuth 2.0流的ASWebAuthenticationSession(使用AppAuth库)的登录名 登录正常,Cookie按预期与Safari共享。由于cookie共享,用户在使用Safari应用程序时会自动登录 然而,回到应用程序中,如果我再次启动SFSafariViewController,cookies就会丢失。这让我感到惊讶,因为我认为SFSafariViewController和Safari的cookie存储是相同的,并且在登录时它显然是朝着从SFSafariVC到Safari应用程序的方向工作的。 它的目的是不反过来工作——从Safari到SFSafariViewController,还是一个bug? 我在文件中没有找到明确的陈述。 当然,我没有将“短暂会话”设置为true,但根据文档,它将与我想要实现的相反: 我还发现了一些相关的雷达,比如and或这个stackoverflow帖子:但它们并没有回答我的问题 根据这项研究,如果cookies有一个到期日(设置为未来的日期),它就可以工作。我验证了cookies,它们都有一个未来的到期日Ios 我可以在SFSafariViewController中从Safari获取Cookie吗?,ios,cookies,safari,openid-connect,sfsafariviewcontroller,Ios,Cookies,Safari,Openid Connect,Sfsafariviewcontroller,tl;博士见下面的问题 在我的应用程序中,我有一个使用SFSafariViewController和遵循OAuth 2.0流的ASWebAuthenticationSession(使用AppAuth库)的登录名 登录正常,Cookie按预期与Safari共享。由于cookie共享,用户在使用Safari应用程序时会自动登录 然而,回到应用程序中,如果我再次启动SFSafariViewController,cookies就会丢失。这让我感到惊讶,因为我认为SFSafariViewControlle
我的问题:SFSafariViewController没有从同一应用程序中的早期SFSafariViewController实例或Safari中获取cookie,这是我做错了什么,还是这是预期的行为?要求 因此,您似乎需要一个解决方案,从移动应用程序调用安全的web内容,并避免额外登录。这是一个常见的要求,我将在下个月左右添加一些关于这个主题的内容 行业状况 上面提到的问题是,由于浏览器安全措施(如更改)的原因,第三方cookie(如身份提供商发布的cookie)通常会在默认情况下被删除,而Safari中默认情况下会启用这些更改: COOKIE属性 值得检查的是,您的cookie是否使用SameSite=None发布,这将为您提供基于第三方cookie的解决方案的最佳选项 移动优先设计 在OAuth世界中,为了满足需求,可能需要将令牌从移动UI发送到web UI,这当然有需要设计的先决条件:
- Web UI必须使用令牌
- Web UI必须根据主机使用不同的令牌处理策略
- web服务器日志中未记录可用令牌
- 该令牌只能一次性使用
- 移动UI调用/api/token/encrypt端点
- API将令牌散列存储在数据库中,并返回一个加密值,该值的有效期很短
- 令牌从移动应用程序发送到Web UI
- Web UI调用/api/token/decrypt端点以获取真正的令牌
- API的解密实现删除数据库条目