Почему Xero OAUTH API больше не возвращает JSON

У меня была работающая интеграция Xero API OAUTH, которая внезапно перестала работать. Я получаю следующую ошибку:

Error: [UnexpectedValueException] Invalid response received from Authorization Server. Expected JSON. in /var/www/html/mnr-be/vendor/league/oauth2-client/src/Provider/AbstractProvider.php on line 539

Вот соответствующая часть файла composer.lock:

{
  "name": "cakephp/app",
  ...
  "type": "project",
  "version": "0.4.2",
  "license": "Private, no license granted",
  "repositories": [],
  "require": {
    "php": ">=7.2",
    "burzum/cakephp-service-layer": "^2.0",
    "cakephp/authentication": "^2.6",
    "cakephp/authorization": "^2.0",
    "cakephp/bake": "2.5.x",
    "cakephp/cakephp": "4.2.*",
    "cakephp/migrations": "^3.0",
    "cakephp/plugin-installer": "^1.2",
    "friendsofcake/crud-json-api": "^1.0.1",
    "friendsofcake/search": "^6.0",
    "josegonzalez/dotenv": "dev-master",
    "league/oauth2-client": "^2.5",
    "mobiledetect/mobiledetectlib": "^2.8",
    "robmorgan/phinx": "^0.12.4",
    "symfony/yaml": "^5.1",
    "xeroapi/xero-php-oauth2": "^2.1"
  },

Есть идеи, почему? Изменился ли API?

ОБНОВИТЬ Ответ от сервера:

<html>
  <head>
    <title>Access Denied</title>
  </head>
  <body>
    <h1>Access Denied</h1>
    You don't have permission to access
    "http&#58;&#47;&#47;identity&#46;xero&#46;com&#47;connect&#47;token" on this
    server.
    <p>Reference&#32;&#35;18&#46;b0c35068&#46;1667675819&#46;108773f6</p>
  </body>
</html>

Согласно документации Xero (https://developer.xero.com/documentation/guides/oauth2/troubleshooting/#tls-errors):

Но я использую ngrok v2 и caddy v2, которые реализуют TLS 1.2, так что это не может быть проблемой.

Я также пытался обновить "xeroapi/xero-php-oauth2": "2.17.0", последнюю версию библиотеки, и получаю ту же ошибку.

🤔 А знаете ли вы, что...
С помощью CakePHP можно легко интегрировать сторонние библиотеки и компоненты.


77
1

Ответ:

Решено

Оказывается, была проблема с брандмауэром Xero API, который не пропускал ngrok. Я написал им, и они внесли изменение, которое решает проблему.