Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package MyApp;
- use Mojo::Base 'Mojolicious';
- use MyUsers;
- sub startup {
- my $self = shift;
- # ...auth stuff omitted...
- my $r = $self->routes;
- $r->any('/' => sub {
- my $self = shift;
- my $user = $self->param('user') || '';
- my $pass = $self->param('pass') || '';
- return $self->render unless $self->users->check($user, $pass);
- $self->session(user => $user);
- $self->flash(message => 'Thanks for logging in.');
- $self->redirect_to('protected');
- } => 'index');
- $r->get('/protected' => sub {
- my $self = shift;
- return $self->redirect_to('index') unless $self->session('user');
- });
- $r->get('/logout' => sub {
- my $self = shift;
- $self->session(expires => 1);
- $self->redirect_to('index');
- });
- }
- 1;
- package MyApp::Login;
- use Mojo::Base 'Mojolicious::Controller';
- sub index {
- my $self = shift;
- my $user = $self->param('user') || '';
- my $pass = $self->param('pass') || '';
- return $self->render unless $self->users->check($user, $pass);
- $self->session(user => $user);
- $self->flash(message => 'Thanks for logging in.');
- $self->redirect_to('protected');
- }
- sub protected {
- my $self = shift;
- return $self->redirect_to('index') unless $self->session('user');
- }
- sub logout {
- my $self = shift;
- $self->session(expires => 1);
- $self->redirect_to('index');
- }
- 1;
- package MyApp;
- use Mojo::Base 'Mojolicious';
- use MyUsers;
- sub startup {
- my $self = shift;
- # ...auth stuff omitted...
- my $r = $self->routes;
- $r->any('/')->to('login#index')->name('index');
- $r->get('/protected')->to('login#protected')->name('protected');
- $r->get('/logout')->to('login#logout')->name('logout');
- }
- 1;
- $r->get('/protected' => sub {
- my $self = shift;
- return $self->redirect_to('index') unless $self->session('user');
- });
- sub protected {
- my $self = shift;
- return $self->redirect_to('index') unless $self->session('user');
- }
- $r->get('/protected')->to('login#protected')->name('protected');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement