| CatalystX-SimpleLogin documentation | Contained in the CatalystX-SimpleLogin distribution. |
CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout
Simple controller role for logging users out. Provides a
logout action (at /logout by default) which redirects
the user to the homepage by default.
Calls $c->logout, then redirects to the logout uri
retuned by $self->redirect_after_logout_uri.
Returns the uri to redirect to after logout.
Defaults to $c->uri_for('/'); you can override this
by setting the <redirect_after_logout_uri> key in config
to a path to be passed to $c->uri_for.
Alternatively, you can write your own redirect_after_logout_uri in your Login controller if you are extending CatalystX::SimpleLogin and it will override the method from this role.
Deletes the session after a logout.
To enable this use the following in your config: __PACKAGE__->config('Controller::Login' => { clear_session_on_logout => 1 });
See CatalystX::SimpleLogin for authors.
See CatalystX::SimpleLogin for license.
| CatalystX-SimpleLogin documentation | Contained in the CatalystX-SimpleLogin distribution. |
package CatalystX::SimpleLogin::TraitFor::Controller::Login::Logout; use MooseX::MethodAttributes::Role; use MooseX::Types::Moose qw/Str Bool/; use namespace::autoclean; sub logout : Chained('/') PathPart('logout') Args(0) { my ($self, $c) = @_; $c->logout; $self->do_clear_session_on_logout($c) if $self->clear_session_on_logout; $c->res->redirect($self->redirect_after_logout_uri($c)); } has clear_session_on_logout => ( isa => Bool, is => 'ro', default => 0, ); sub do_clear_session_on_logout { my ($self, $c) = @_; $c->delete_session; } sub redirect_after_logout_uri { my ($self, $c) = @_; $c->uri_for($self->_redirect_after_logout_uri); } has _redirect_after_logout_uri => ( isa => Str, default => '/', init_arg => 'redirect_after_logout_uri', is => 'ro', ); 1;