Как можно реализовать авторизация так чтобы только один пользователь могут заходить в систему?
Здравствуйте!
Задача такая...когда пользователь авторизован на сайт, через другое компьютер не должно зайти на него аккуант...
как можно этого реализовать?
человек авторизовался. компьютер у него сгорел. войти на сайт он больше никогда не сможет ?
человек авторизовался на работе . закрыл броузер не нажав на выход. Зайти из дома он не сможет ?
Наверное вас все же интересует, чтобы он не мог одновременно смотреть например фильм с двух
мест.
Обычно реализовывают, чтобы при входе с другого места, первого выкидывало с сайта.
А в вашей постановке задача на порядок сложнее.
Олег Муравейко, ну да...сложно....главное при работе в систему когда пользователь авторизован...другим не дать доступ через другое компьютер.....а когда пользователь выходить из систему...или просто закрыл браузер...то можно зайти с другого компьютера..
не знаю зачем вам такое. Но схема когда следующий вход закрывает предыдущие сессии лучше всего отбивает желание давать свою учетку халявщикам. Еще со времен диалапа в интернет. Не хочешь , чтобы тебе на 45 минуте скачки архива оборвали связь, а сервер откуда качал отдает только целиком - не делись .
ставите куку пользователю (раз в минуту эту куку в фоне обновляете), где нибудь на сервере запоминаете что он авторизировался (типа кука обновляется), если пробует авторизироваться проверяете есть ли запись об его авторизации и все
ну допустим я сохранил куки в браузер и в БД.....и с этим проверяю....но когда пользователь просто закрыл браузер и уходил? и потом может ему придётся с другой компа зайти в систему.... но у же в БД другой куки....
мне нужно запретить авторизация только тогда, когда пользователь уже авторизован....то есть во время работу с другой компку заходить ту же аккуант нельзя...
я же написал в фоне обновляете куку, как только браузер закрылся кука с браузера удалилась, а на сервере в кроне проверка, если кука не обновлялась раз в N минут то удаляем её.
У Yii user Dektrium к примеру есть auth_key, который используется при авторизации. Так вот, при новом логине - переписывайте ключ на новый, это равносильно анлогину с других девайсов.
и вам тоже такой вопрос как на верх.....
ну допустим я сохранил кей в куки и в БД...и с этим проверил...
но когда пользователь просто закрыл браузер и уходил...и потом заходил с другого компка...?
Пишите для каждой авторизации новый кей в базу, переписываете методы получения ключа.
Если ключ не логинился в течении неделе, или месяца - значит делаем его неактивным, т.е. отключаем человека. Если человек залогинился с другого устройства, делаем другие неактивным.
Дилик Пулатов, также как online users на сайте по php можно реализовать - делать ап раз в минуту и если он еще здесь - не менять. Если нет - удалять его кей из базы.