use strict; use warnings; package main; use Plack::Middleware::SimpleLogin; use Plack::Builder; sub check_pass { my( $username, $pass ) = @_; if( $username eq $pass ){ return 0, $username; } else{ return 'Wrong username or password'; } } sub my_app { my $env = shift; my $page = '' . $env->{PATH_INFO} . '
'; if( $env->{'psgix.session'}{user_id} ){ $page .= 'Hi ' . $env->{'psgix.session'}{user_id} . '
'; } else{ $page .= 'login'; } $page .= ''; return [ 200, { 'Content-Type' => 'text/html', }, [ $page ] ]; } builder { enable 'Session'; enable 'SimpleLogin', check_pass => \&check_pass; \&my_app }