# Login plugin package Login::Dispatcher; on 'login' => 'login'; on 'logout' => 'logout'; on 'signup' => 'a_moment'; after 'logout' => run {...clear_cookie...}; before 'login' => run {...check_for_already_logged_in...}; # RequiredAuth plugin package RequiredAuth::Dispatcher; before '*' => [ plugin Login, run { ...check for auth, otherwise 401... } ], on 'auth_required' => run {...} # Dummy application package Dummy::Dispatcher; ## implicit from config.yml: ## plugins: ## - RequireAuth: ## prefix: /blah ## args: vals ## - Login: ## prefix: /blah ## args: vals # trigger RequireAuth; after plugins 'Login::*' => [ on "logout" => show '/my/logout', ] before plugins '*' => [ on "logout" => show '/my/logout', ] on 'logout' => [ show '/my/logout', plugin Login, ] after 'login' => [ ] after PUT 'login' => [ ] after plugin Login => ( before plugin Login => ( on "logout" => show '/my/logout', ); on 'logout' => [ before_plugin Login, show '/my/logout', ]