Рефакторинг реализации Zend_Auth

Я работаю над существующим проектом, который имеет две области, в которые можно войти. Раздел администратора и передний конец.

В настоящее время в разделе администратора есть действие для входа, а на лицевой стороне есть собственное действие входа. Администратор регистрируется с использованием таблицы базы данных специально для учетных записей администратора, передняя часть регистрируется с использованием другой таблицы.

Если администратор зарегистрирован и пытается выполнить вход в интерфейс, ему будет предложено войти в систему как пользовательский интерфейс (необходимо, потому что передние конечные пользователи получают совершенно другой контент на основе проектов, с которыми они связаны, и admin не связан с одним конкретный проект).

После входа в систему как пользователь переднего конца, их учетные данные администратора исчезли, и они снова должны войти в систему, если они попытаются повторно войти в раздел администратора.

Я хочу сделать так, чтобы администратор мог войти в раздел администратора и войти в систему как конкретный внешний пользователь. Таким образом, возможность переключаться между двумя разделами сайта без необходимости повторного входа в систему.

Каков наилучший способ справиться с этим в рамках Zend Framework?

До сих пор я собираюсь потерять отдельные действия входа и иметь только один (нет необходимости в двух, правильно?), А затем мне приходится иметь дело с предоставлением отдельных учетных данных.

В настоящее время вход в систему в качестве внешнего пользователя приводит к тому, что администратор должен выполнить вход в систему для доступа к области администрирования. Это потому, что некоторые учетные данные $ _SESSION перезаписываются? Нужно ли мне каким-то образом создать пользовательскую переменную $ _SESSION для обработки этого пути ZF?

Очевидно, я не могу просто назначить значение $ _SESSION ['front_end'] или $ _SESSION ['admin'] (что я бы сделал в тот же день), как бы это сделать в Zend Framework?

Благодаря!