Как ограничить вход в систему на другом устройстве тем же пользователем с помощью библиотеки авторизации tank?
Есть ли способ ограничить доступ к странице с библиотекой авторизации резервуара, если тот же пользователь вошел в систему на другом устройстве?
2 ответа
Я думаю, что то, что вы ищете, не имеет ничего общего с библиотекой аутентификации Tank, она находится в вашем конфигурационном файле, расположенном в application/config/config.php
$config['sess_match_ip']= FALSE;
$config['sess_match_useragent'] = TRUE;
изменить на
$config['sess_match_ip']= TRUE;
$config['sess_match_useragent'] = TRUE;
Я не до конца понимаю ваш вопрос и не очень хорошо знаю библиотеку Tank auth. Предполагая, что для этого нет реализации по умолчанию, я объясню возможное решение проблемы.
Это можно сделать путем сохранения токена сеанса в базе данных и генерирования нового токена сеанса каждый раз, когда кто-либо входит в систему. Затем сохраните этот токен сеанса в Cookie (или в переменной Session, если хотите). И каждый раз, когда ваше приложение загружается, проверяйте, если токен сеанса все еще действителен. Если один и тот же пользователь войдет в систему на другом устройстве, маркер сеанса изменится, и поэтому старый сеанс станет недействительным.
Если вы хотите, чтобы пользователи могли входить в систему на нескольких устройствах одновременно, но просто хотите заблокировать доступ к одной странице (например, доступ к вебинару / скринкасту), у вас есть несколько разных вариантов. Наиболее простым решением было бы поставить флаг в базу данных с открытым или нет. Проблема в том, что если кто-то закроет его, его нельзя будет снова посмотреть. Небольшая разница в этом заключается в использовании токена сеанса, который устанавливается, когда кто-то впервые открывает страницу. Вы сохраняете токен в базе данных и сохраняете его в файле cookie. Итак, первое устройство, которое его открывает, - это устройство, которое может смотреть.
Другим решением было бы обновить поле last_active и каждую минуту делать ajax-вызов на сервер, пока страница открыта. Если страница не была активной в течение 2 минут, вы можете предположить, что она больше не активна, и вы можете предоставить доступ другому устройству.