Начиная с 24 марта, похоже, изменился способ ответа API Discourse на запросы.
С нашей стороны никаких изменений в коде не вносилось, и Api-Key по-прежнему действителен, однако один из наших бэкенд-сервисов, пытающийся получить информацию о пользователе, начал выдавать ошибку при обращении к users/by-external/{id}.json.
В этих запросах мы отправляем заголовки Api-Key и Api-Username, которые, согласно документации, являются обязательными. Эти запросы корректно работали в течение многих лет.
Теперь все запросы к этой конечной точке завершаются ошибкой 403 с следующим телом ответа:
{
"errors": [
"You are not permitted to view the requested resource."
],
"error_type": "invalid_access"
}
Это также происходит, если я пытаюсь запросить /u/{username}.json.
Удивительно, но когда я НЕ отправляю заголовки, эти запросы, которые согласно документации требуют заголовков аутентификации, фактически возвращают запрошенные данные, как будто они были аутентифицированы.
Я также пробовал отправлять неверный Api-Key, и в ответ получал немного другое сообщение:
{
"errors": [
"You are not permitted to view the requested resource. The API username or key is invalid."
],
"error_type": "invalid_access"
}
Это говорит о том, что ключ принимается, но ошибочно сообщается, что он не предоставляет доступа к ресурсу, в то время как неаутентифицированные запросы получают полный доступ.
Я также только что протестировал ситуацию с новым Api-Key, имеющим опции all-users / global, и получил тот же результат.