NAME

Plack::Middleware::Auth::Form - Form Based Authentication for Plack (think CatalystX::SimpleLogin but on Plack level)

VERSION

version 0.009

SYNOPSIS

builder {
    enable 'Session';
    enable 'Auth::Form', authenticator => \&check_pass;
    \&my_app
}

DESCRIPTION

/login

a page with a login form

/logout

logouts the user (only on a POST) and redirects him to after_logout or /.

After a succesful login the user is redirected back to url identified by the redir_to session parameter. It also sets that session parameter from $env->{HTTP_REFERER} if it is not set or to / if even that is not available. The username (or id) is saved to user_id session parameter, if you want to save an id different from the username - then you need to return a hashref from the authenticator callback described below.

If the login page looks too simplistic - the application can take over displaying it by setting the no_login_page attribute. Then the the login form will be saved to $env->{'Plack::Middleware::Auth::Form.LoginForm'}.

CONFIGURATION

authenticator

A callback function that takes username and password supplied and returns whether the authentication succeeds. Required.

Authenticator can also be an object that responds to authenticate method that takes username and password and returns boolean, so backends for Authen::Simple is perfect to use:

use Authen::Simple::LDAP;
enable "Auth::Form", authenticator => Authen::Simple::LDAP->new(...);

The callback can also return a hashref with two optional fields error - the reason for the failure and user_id - the user id to be saved in the session instead of the username.

no_login_page

Save the login form on $env->{'Plack::Middleware::Auth::Form.LoginForm'} and let the application display the login page (for a GET request).

after_logout

Where to go after logout, by default '/'.

SEE ALSO

Plack CatalystX::SimpleLogin

ACKNOWLEDGEMENTS

The authenticator code and documentation copied from Plack::Middleware::Auth::Basic.

CONTRIBUTORS

Tokuhiro Matsuno

AUTHOR

Zbigniew Lukasiak <zby@cpan.org>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2011 by Zbigniew Lukasiak <zby@cpan.org>.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)