NAME
Mojolicious::Plugin::HttpBasicAuth - Http-Basic-Authentication implementation for Mojolicious
SYNOPSIS
# in your startup
$self
->plugin(
'http_basic_auth'
, {
validate
=>
sub
{
my
$c
=
shift
;
my
$loginname
=
shift
;
my
$password
=
shift
;
my
$realm
=
shift
;
return
1
if
(
$realm
eq
'Evergreen Terrace'
&&
$loginname
eq
'Homer'
&&
$password
eq
'Marge'
);
return
0;
},
realm
=>
'Evergreen Terrace'
}
);
# in your routes
sub
index
{
my
$self
=
shift
;
return
unless
$self
->basic_auth(\
%options
);
$self
->render();
}
# or bridged
my
$foo
=
$r
->bridge(
'/bridge'
)->to(
cb
=>
sub
{
my
$self
=
shift
;
# Authenticated
return
unless
$self
->basic_auth({
realm
=>
'Castle Bridge'
,
validate
=>
sub
{
return
1;}});
});
$foo
->route(
'/bar'
)->to(
controller
=>
'foo'
,
action
=>
'bar'
);
DESCRIPTION
Mojolicious::Plugin::HttpBasicAuth is a implementation of the Http-Basic-Authentication
OPTIONS
Mojolicious::Plugin::HttpBasicAuth supports the following options.
realm
$self
->plugin(
'http_basic_auth'
, {
realm
=>
'My Castle!'
});
HTTP-Realm, defaults to 'WWW'
validate
$self
->plugin(
'http_basic_auth'
, {
validate
=>
sub
{
my
$c
=
shift
;
my
$loginname
=
shift
;
my
$password
=
shift
;
my
$realm
=
shift
;
return
1
if
(
$realm
eq
'Springfield'
&&
$loginname
eq
'Homer'
&&
$password
eq
'Marge'
);
return
0;
}
});
Validation callback to verify user. This option is mandatory.
invalid
$self
->plugin(
'http_basic_auth'
, {
invalid
=>
sub
{
my
$controller
=
shift
;
return
(
json
=> {
json
=> {
error
=>
'HTTP 401: Unauthorized'
} },
html
=> {
template
=>
'auth/basic'
},
any
=> {
data
=>
'HTTP 401: Unauthorized'
}
);
}
});
Callback for invalid requests, default can be seen here. Return values are dispatched to "respond_to" in Mojolicious::Controller
HELPERS
Mojolicious::Plugin::HttpBasicAuth implements the following helpers.
basic_auth
return
unless
$self
->basic_auth({
realm
=>
'Kitchen'
});
All default options can be overwritten in every call.
METHODS
Mojolicious::Plugin::HttpBasicAuth inherits all methods from Mojolicious::Plugin and implements the following new ones.
register
my
$route
=
$plugin
->register(Mojolicious->new);
my
$route
=
$plugin
->register(Mojolicious->new, {
realm
=>
'Fort Knox'
,
validate
=>
sub
{
return
0;
}});
Register renderer and helper in Mojolicious application.
SEE ALSO
Mojolicious, Mojolicious::Guides, http://mojolicio.us.
AUTHOR
Patrick Grämer <pgraemer@cpan.org> , http://graemer.org.
CONTRIBUTOR
Markus Michel <mmichel@cpan.org> , http://markusmichel.org.
COPYRIGHT
Copyright 2015 Patrick Grämer
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.