Я делал это двумя способами в прошлом.
Проще всего было позволить людям с достаточной привилегией войти в систему как произвольный пользователь без пароля. Это всего лишь входной вход в систему, полностью заменяющий кого-то, с кем вы притворяетесь. Вы возвращаетесь к себе, выйдя из системы и снова войдя в систему.
Другой должен был держать флаг в сеансе, говоря «Я действительно пользователь ABC» и проверить этот флаг на соответствующих страницах администрирования (механизм не имеет значения, но обычно может быть сделан умным и практически невидимым в большинстве фреймворков) но переключите пользователя сеанса на пользователя XYZ. Тот же механизм «пропустить пароль» будет использоваться как в первом.
Последний является более сложным, но устраняет необходимость выхода из системы/входа в систему и позволяет создавать интересные трюки, например, запускать сайт внутри iframe и оставлять меню администратора видимым для «выпадения» специального режима и т. Д.
Благодарим вас за ответ. Под «пользователем с привилегией» вы подразумеваете нечто вроде ролей или претензий? if (manager) показывает дополнительный элемент ui, который позволяет второй логин? Можете ли вы связать сайты, на которых вы реализовали такой вторичный вход в систему? –
@AlexanderTaran Ни один из публичных не предоставит вам функциональность, поскольку у вас не будет привилегий, поэтому нет. Все они основаны на ролях или флагах: «У меня есть права на вход в систему как на другого пользователя», многие из них «имеют ли я права входа в систему как пользователь определенного типа». Да, всегда существовал элемент пользовательского интерфейса для функциональности, иначе было бы действительно реально использовать функциональность. –