1. Использовать сессии для хранения информации ( Имя, Путь до аватарки, и возраст) - есть страницы где бд не используется, но нужна эта информация и каждый раз делать запрос в бд глупо.
Храните лучше в памяти. В вашем варианте идеально подойдёт redis как сервис для хранения сессий (код переписывать не прийдётся, просто в кофиге ставите session_handler = redis и все ваши $_SESSION автоматически будут хранится в памяти).
2. Манипулировать пользователем если он оффлайн ( разлогинить его и т.п )
3. Запомнить пользователя, чтобы ему не приходилось каждый раз вводить логин/пароль ( если на сесссиях, сессию сохраняю в свою директорию и даю время жизни - месяц )
Как лучше реализовать это?
Сейчас у меня все на сессиях( сессия на фс( файловая система ), планирую сохранять в бд )
Но мне частенько говорят, что лучше сделать на cookie с использованием access_token, но я не до конца понимаю механизм...
Однозначно для этого надо использовать токены. По простому будет примерно так:
Создаёте таблицу tokens(token, userId, lifeTime), генерируете токен как хеш например от айди юзера + соль. Кладёте его в базу с временем действия и в куку юзеру. Дальше смотрите - есть у юзера кука токена - проверяете её хеш - если валиден, смотрите в базу время жизни - если всё ок - авторизуете, иначе - сбрасываете авторизацию.