Запрос осуществляется через ajax функцию из js скрипта который вначале был загружен main_page().
Следовательно любой авторизованный юзер, используя отладчик в браузере, может увидеть этот запрос, передать его третьим лицам, и эти третьи лица смогут грузить данные.
Нужно ли я защищать декоратором каждую функцию в проекте?
Публичные - да. Любой запрос от клиентской части нужно проверять. Но не в лоб в каждой функции писать проверку.
Создайте метод, который при любом запросе (за парой исключений) неавторизованного юзера, будет кидать его на форму с авторизацией, либо возвращать 403. И вызывайте его перед обработкой маршрутов, как вариант.