(Monaca, Cordova) Запрос веб-API с аутентификацией формы (Cook ie) не работает - PullRequest
0 голосов
/ 30 января 2020

У меня проблема с опубликованным приложением и веб-API. Проблема еще не решена, поэтому мне нужна ваша помощь!

Характеристики

Приложение

  • Приложение построено с помощью Monaca (https://monaca.io/ , на основе Cordova, HTML / JavaScript / CSS),
  • Вызывает веб-API с помощью метода jQuery (версия 3.4.1) ajax.
  • Приложению необходимо сначала войти в API, получить учетные данные с помощью cook ie, а затем вызвать другие запросы с другими Web-API с учетными данными.

Web API

  • Встроенный ASP. NET MVC (C#) и хостами в Microsoft Azure (Служба приложений).
  • Конечная точка входа возвращает учетные данные, если идентификатор и пароль в запросе верны.
  • Другой конечной точке API требуется авторизация с кодом «[Authorize]».

Подробная информация о проблеме

Даже если запросы на вход в систему выполнены успешно, следующий вызов API возвращается ошибка (401 не авторизован). Об этой проблеме сообщалось 24 января 2020 года, и даже сейчас.

Отслеживая данные (с помощью прокси-сервера Charles), я обнаружил следующее:

  • Конечная точка входа возвращает учетные данные (Set-Cook ie: xxxx).
  • В приложении вызов API после входа в систему не отправляет учетные данные «Cook ie».

Эта проблема возникает не на всех устройствах. поддерживается (iOS & Android с последней версией веб-просмотра)

  • Google Pixel 3a (Android 10): вызов не выполнен
  • Motorola Moto X4 (Android 9 ): Сбой
  • Huawei (Android 6): Сбой
  • iPhone SE (iOS 12.4): Сбой
  • iPhone 6 Plus (iOS 10.2.1): вызов SUCCEEDED

Как приложение, так и веб-API не обновлялись как минимум в течение последних 3 месяцев.

1 Ответ

0 голосов
/ 06 февраля 2020

Я решил эту проблему. Проблема была на стороне сервера (веб-API на Azure).

Объявление: SameSite Cook ie Обработка и. NET Framework 4.7.2 Доступность исправлений в Azure Служба приложений - Microsoft Q & A (Предварительный просмотр)
https://docs.microsoft.com/answers/questions/6842/announcement-samesite-cookie-handling-and-net-fram.html

Веб-API был создан с ASP. NET MVC 4.5 в Azure Служба приложений. В январе 2020 года новая служба была установлена ​​на Azure, а затем в веб-API возникли ошибки.

Согласно руководству на странице выше, проблема была решена.

(I не могу найти, почему API работал нормально на тестовой машине iPhone 6 Plus, iOS 10.2.1.)

...