В целом все верно рассуждаете, но дьявол в деталях и свою собаку я только надкусил, не могу предостеречь :) если из более опытных не подскажет, то определитесь пока с праймари хранилищем — побенчмаркайте MongoDB vs Hbase (если не испугает сложность настройки последнего), все остальное (если не подойдет) померять/поменять будет не так сложно.
Сессия тоже не хранится вечно, хотя если народу у вас логинится не много, то можно и похранить их хоть полгода. Вопрос лишь в том как много их накопится и какой средний размер данных в сессии. Для начала сойдет, ну а далее можно так.
Если надолго, тогда конечно случайный хэш при логине в куку, и пару тот же хэш + IP в базу. Только не одну пару как cheremushkin предлагает, а скажем 5-7 пар. И методом LIFO — последний вытесняет первый. По желанию можно предлагать параноику анлинкать все предыдущие компы.
Именно, почему я считаюсь не «тем же самым пользователем» когда пытаюсь войти на работе и дома. Или дома на телефоне и на компе. Поберегите нервы своим пользователям :)
@chremushkin, при перезагрузке браузера сессия остается, это сессионная кука пропадает, решается настройкой которую я написал выше. А динамический IP не настолько уж динамический чтобы меняться пока юзер ходит по сайту.
К фтп нужно коннектиться с каждого компа (нужен клиент везде), в дропбоксе же папка есть всегда и везде. Вот разве что кто-то сделает аналог дпопбокса которому указывается ftp, а оно в бэкграунде отправляет, эх.