Примерно как создать историю активности понимаю, но не совсем понимаю как разлогинить пользователя если он оффлайн, да даже если онлайн, но с другого пк.
Авторизация на куках.
Думаю придется делать на сессиях и хранить их в директории, и удалять для того чтобы разлогинить, я прав?
Можно создать таблицу с сессиями пользователей. И при логине записывать ид текущей сессии. Если он логинется с другого компа генерится новая сессия и перетирает старую. Соответсвенно если пользователя с такой ид сессии нету в базе значит он залогинелся в другом месте и тут его можно вылогинить.
Так же и с активностью. При каждом действии записывать текущее время (last activity time).
Ну и на странице, каждые 30 секунд делать запрос на сервер и проверять текущуюю сессию и активность пользователя.