【发布时间】:2017-05-18 21:39:48
【问题描述】:
概述
我有一个使用 JWT 令牌来保护端点的 WebApi 2.0 项目。当用户登录到我的 Web 应用程序时,会向 API 发出 AJAX 请求,API 会生成承载令牌并将其返回给用户,然后将其保存在 sessionStorage 客户端,以便可以向受保护的端点发出请求。
请注意,我的 Web 应用程序和 API 都使用 CORS 通过 https 托管。
问题
在使用 Firefox、Chrome、Internet Explorer 和 Edge 时,这一切都可以正常工作。但是,当我通过 iPhone 或 iPad 登录到我的 Web 应用程序时,API 甚至会被调用,因此不会返回任何令牌。这意味着我的 Web 应用程序无法从受保护的端点获取数据,这实际上使它有点没用!
研究
Https requests with Authorization not working via Safari
看起来上述问题中的用户至少从服务器获取了一个令牌,这比我目前得到的要多。
有没有人知道为什么会发生这种情况?
2017 年 5 月 1 日更新
只是为了让这个问题和答案更准确。这不是不记名令牌生成或消费的问题,只是 Safari 在不设置 async: false 的情况下实际上不会向我的 API 发出 AJAX 请求。
【问题讨论】:
标签: ios asp.net-web-api safari jwt