Для нашего приложения мы используем глобальный API-ключ, который применяется ко всем пользователям. Ранее мы использовали виртуальное имя пользователя (несуществующий пользователь) anonymous для обозначения контекста, когда пользователь не был авторизован. Это работало на протяжении последних 3+ лет до 25.10.2020 в 00:39 по центральному времени США.
Сегодня я решил проблему, создав пользователя с таким именем. Были ли введены какие-либо ограничения в эти выходные? Произошло ли обновление API?
Это нарушило возможность просмотра комментариев для всех публичных пользователей, поэтому очень благодарен за ответ.
Я не знаю о недавних изменениях, которые могли бы повлиять на это поведение. Мне казалось, что так работало всегда (выводилось сообщение об ошибке, если пользователь не найден). Вот код, который проверяет возможность чтения имени пользователя из учётных данных API.
23 дня назад было внесено недавнее изменение, но оно не относится к вашей ситуации и в любом случае возвращает другое сообщение об ошибке.
Для перепроверки я настроил локальную версию Discourse на использование этого коммита более годичной давности, и при использовании несуществующего пользователя получаю ту же ошибку.
Один положительный момент: теперь у нас есть области действия API, поэтому, если пользователям нужен только доступ с правами read, вы можете обновить этот ключ API так, чтобы он больше не был ключом с полным доступом.
Если это публичный сайт, то вы должны иметь возможность выполнять эти запросы с вашего бэкенда без какой-либо аутентификации, чтобы получить анонимный просмотр. Если ограничения скорости станут проблемой, то да, вам нужно будет использовать реального тестового пользователя.
Ещё одна мысль, которая мне только что пришла в голову: настройка сайта revoke api keys days. Поскольку такого пользователя не существует, мы никогда не обновляем дату последнего использования для этого ключа, и я почти уверен, что ключ был автоматически отозван? Хотя я всё ещё не понимаю, как вам вообще удалось сделать валидный запрос.