Я бы сделал так:
1. Авторизуем пользователя
2. Выдаём ему токен (в cookies) и пишем его в базу как активный
3. Сверяем токен из cookies с токеном из базы (при запросах)
На сколько я знаю, у vk работает примерно по такой же схеме (по крайней мере внешне выглядит так).
Если хочется ещё секурней сделать, можно ограничить сессию по времени (точнее токена в базе) + сверять браузер + ip (если меняется, разлогинивать путём удаления токена из базы). Но тут уже могут быть проблемы у пользователей с динамическим ip. Тут уже надо смотреть что важнее, безопасность данных или удобство пользователя.