Похоже, у вас большая часть проработанного Cognito.
Если вы вызываете шлюз API из веб-клиента, вы, скорее всего, передаете этот токен jwt в заголовок, и эти вызовы API будут произойдет сбой до входа пользователя в систему.
Если вы используете клиентскую среду (React, Vue, et c), то, вероятно, у вас есть доступ к маршрутизатору, который отображает различные компоненты пользовательского интерфейса. Это работает аналогично тому, что вы делаете на сервере в php, и довольно легко заблокировать определенные маршруты или рендеринг определенных компонентов в зависимости от пользователя, вошедшего в систему. Выполнение этого без каркаса, вероятно, потребует значительного количества усилия.
Вы также можете установить сервер php, проверить токен jwt и сделать то, что вы обычно делаете для аутентифицированных пользователей.
Или вы можете использовать сверхсовременный, безсерверный подход , Вы можете разместить свой html / css в корзине S3 и поставить перед ним дистрибутив Cloudfront. Вы можете написать несколько Lambda@Edge функций для обеспечения прав доступа к содержимому в корзине S3.
Вероятно, если вы создаете приложение javascript на основе API, вам не нужно защищать свою разметку / css.