开发者

Sharing authentication across Catalyst apps

开发者 https://www.devze.com 2023-02-21 20:10 出处:网络
I have a three applications that I would like to keep separate for manageability purposes. They run as a Plack server as suggested here, proxied behind nginx.

I have a three applications that I would like to keep separate for manageability purposes. They run as a Plack server as suggested here, proxied behind nginx.

I would like to have a separate application to manage logins, and have that login and its authentication process shared across all other apps, with authorization done via roles.

I would like to use Catalyst::Authentication::Store::DBIx::Class for storage.

I have tried managing authentication at the Plack level with Catalyst::Authentication::Credential::Remote doing it at the Catalyst level (which would be ideal), but can't seem to make the login seen by the Catalyst apps.

Thanks for your 开发者_如何学Pythonhelp.


Sharing the store is easy -- you can either just use the DBIC session store and duplicate the config in all of the apps, or you can create a subclass of the DBIC store with a __PACKAGE__->config line containing the stuff that all of the apps have in common, and then specify your subclass in the session config.

As for the state -- you can use State::Cookie if the apps share a domain in common -- you just need to set the cookie_domain and/or cookie_path options in your session config so that the cookie gets set in a way that it will be visible to all of the apps, and set the cookie_name config option to the same thing in all apps, because otherwise they would all get different cookie names based on their different application class names.

0

精彩评论

暂无评论...
验证码 换一张
取 消