Совместное использование аутентификации в приложениях Catalyst - PullRequest
2 голосов
/ 02 апреля 2011

У меня есть три приложения, которые я хотел бы разделить для целей управления.Они запускаются как сервер Plack, как предложено здесь , прокси за nginx.

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

Я хотел бы использовать Catalyst :: Authentication :: Store :: DBIx :: Class для хранения.

Я пытался управлять аутентификацией на уровне Plackс Catalyst :: Authentication :: Credential :: Remote, который делает это на уровне Catalyst (что было бы идеально), но, похоже, не может выполнить вход в систему, видимый приложениями Catalyst.

Спасибо за вашу помощь.

1 Ответ

3 голосов
/ 02 апреля 2011

Совместное использование хранилища легко - вы можете либо просто использовать хранилище сеансов DBIC и продублировать конфигурацию во всех приложениях, либо создать подкласс хранилища DBIC со строкой __PACKAGE__->config, содержащей материал, который все общих приложений, а затем укажите свой подкласс в конфигурации сеанса.

Что касается состояния - вы можете использовать State :: Cookie , если приложения совместно используют домен - вам просто нужно установить параметры cookie_domain и / или cookie_path в вашем Конфигурация сеанса таким образом, чтобы файл cookie устанавливался таким образом, чтобы он был виден всем приложениям, и для параметра конфигурации cookie_name было установлено одинаковое значение во всех приложениях, поскольку в противном случае все они получили бы разные имена файлов cookie в зависимости от их разные имена классов приложений.

...