跨Catalyst应用程序共享身份验证

时间:2011-04-02 14:49:41

标签: perl catalyst

我有三个应用程序,为了管理目的,我希望将它们分开。它们以建议的here作为Plack服务器运行,代理在nginx后面。

我希望有一个单独的应用程序来管理登录,并在所有其他应用程序之间共享该登录及其身份验证过程,并通过角色进行授权。

我想使用Catalyst :: Authentication :: Store :: DBIx :: Class进行存储。

我尝试在Plack级别管理身份验证,使用Catalyst :: Authentication :: Credential :: Remote在Catalyst级别执行此操作(这将是理想的),但似乎无法使Catalyst应用程序看到登录

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

共享商店很简单 - 你可以只使用DBIC会话商店并在所有应用程序中复制配置,或者你可以创建一个DBIC商店的子类,其中包含__PACKAGE__->config行的内容所有应用程序都有共同点,然后在会话配置中指定您的子类。

至于状态 - 你可以使用State :: Cookie 如果应用程序共享一个域 - 你只需要设置cookie_domain和/或{{1您的会话配置中的选项,以便cookie以一种对所有应用程序可见的方式设置,并将cookie_path配置选项设置为所有应用程序中的相同内容,因为否则它们将全部根据不同的应用程序类名称获取不同的cookie名称。