【问题标题】:Cookies not being set on iOS using identityserver未使用身份服务器在 iOS 上设置 Cookie
【发布时间】:2018-11-01 00:32:15
【问题描述】:

我有一个使用 ODIC 授权代码流的移动应用。我们的服务器实现使用的是 Identity Server 4。

移动应用程序打开一个浏览器窗口,我可以很好地登录到第 3 方提供商,然后它重定向到我们身份服务器上的 /signin-adfs,它设置了一些 idsrv.external cookie 并向 /External/Callback 返回一个 302。浏览器重定向到/External/Callback,但不发送任何idsrv.external cookie,因此Identity Server 抛出异常,因为HttpContext.AuthenticateAsync 的结果不成功。

我有点卡在这一点上,因为我不是移动开发人员。我在其他领域部署并稍微定制了 Identity Server,但不是这部分代码。

我相信移动应用正在打开一个 Safari 会话来进行身份验证。这是浏览器不喜欢的 cookie(域、路径、https、安全)的问题吗?或者是其他东西? cookie 大小被分块为 4KB。我不确定是什么导致了这个问题。

让事情变得更奇怪...如果刷新浏览器 (/External/Callback),那么请求就会起作用,并且 iOS 应用程序会获取代码并可以发出后续请求以获取令牌。

【问题讨论】:

  • 您可以检查cookie中的内容。检查NSHTTPCookieStorage

标签: ios asp.net-identity identityserver4


【解决方案1】:

正在挖掘 IS4 源代码并看到指向 this issue on github 的链接。看起来它在源代码中已修复,但尚未发布。如果您在发布之前需要它,那么 github 问题中有一些解决方法。该问题是 iOS 12 特有的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    相关资源
    最近更新 更多