Приветствую!
1) Пагинация. Основная работа здесь ложиться на backend (в идеале). Именно туда с сайта идут запросы с параметрами (page, sortBy, limit, filter, etc) и результаты просто рисуются (в таблице например). Но так как у вас он "сторонний", то могут быть нюансы.
2) Я не пойму, что понимается под "только вошедшим" юзером. Если он "вошел", то он прошел аутентификацию и авторизацию. Или имеется ввиду просто человек, который первый раз открыл ваш сайт и у него нет логина/пароля?
В общих чертах, делал так: на сервер уходил логин/пароль, с сервера возвращался token, refresh_token, expiration_date, которые сохранялись в localStorage (token еще в редаксе хранился).
Далее, перед каждым запросом делалась простая проверка срока действия токена, и либо пускаем дальше, либо обновляем токен (и пускаем дальше в случае успеха), либо просим снова логин-пароль. (Такаяже логика при первом заходе читаем токен из localStorage и по кругу).
Читать-смотреть можно что угодно, по своей теме с приставкой "Advanced" ;)
Посмотреть можно
этот туториал. Я отсюда брал идею "авторизации токенами".
P.S. Для больших проектов еще хорошо бы продумать их структуру, чтобы не было мучительно больно :)