ОбзорКак получить токен-носитель JWT из WebAPI с Safari в качестве клиента?
У меня есть проект с WebAPI 2,0, который использует JWT маркеры для защиты конечных точек. Когда пользователь входит в мое веб-приложение, в API создается запрос AJAX, который генерирует и возвращает токен-носитель пользователю, который затем сохраняется на стороне клиента sessionStorage, чтобы можно было запросить защищенные конечные точки.
Обратите внимание, что как мое веб-приложение, так и API размещаются на https, используя CORS.
Проблема
Это все работает отлично при использовании Firefox, Chrome, Internet Explorer и Edge. Однако, когда я вхожу в мое веб-приложение через свой iPhone или iPad, API даже вызывает вызов, и поэтому не возвращается токен. Это означает, что мое веб-приложение не может получить данные из защищенных конечных точек, что фактически делает его немного бесполезным!
Исследование
Https requests with Authorization not working via Safari
Похоже, что пользователь в вопросе выше, по крайней мере, получить маркер от сервера, который больше, чем я получаю в данный момент.
У кого-нибудь есть понимание, почему это может произойти?
Update 05/01/2017
Просто, чтобы сделать этот вопрос и ответить более точно. Это не было проблемой с генерированием или потреблением токенов-носителей, просто что Safari фактически не выполнил бы запрос AJAX для моего API без установки async: false.