NAME
Amon2::Plugin::Web::Auth - auth with SNS
SYNOPSIS
package
MyApp::Web;
# simple usage
# more configurable...
__PACKAGE__->load_plugin(
'Web::Auth'
=> {
module
=>
'Facebook'
,
on_finished
=>
sub
{
my
(
$c
,
$token
,
$user
) =
@_
;
...
}
}
);
DESCRIPTION
Amon2::Plugin::Web::Auth is authentication engine for Amon2.
THIS MODULE IS EXPERIMENTAL STATE. SOME API CHANGES WITHOUT NOTICE.
CONFIGURATION IN CODE
- module
-
This is a module name for authentication plugins. You can write 'Amon2::Auth::Site::Facebook' as 'Facebook' in this part. If you want to use your own authentication module, you can write it as '+My::Own::Auth::Module' like DBIx::Class.
__PACKAGE__->load_plugin(
'Web::Auth'
=> {
module
=>
'Twitter'
,
...
}
);
# or
__PACKAGE__->load_plugin(
'Web::Auth'
=> {
module
=>
'+My::Own::Auth::Module'
,
...
}
);
- on_finished
-
This is a callback when authentication flow was finished. You MUST return a response object in this callback function. You MAY return the response of
$c->redirect()
.__PACKAGE__->load_plugin(
'Web::Auth'
, {
module
=>
'Github'
,
on_finished
=>
sub
{
my
(
$c
,
$token
,
$user
) =
@_
;
my
$gihtub_id
=
$user
->{id} ||
die
;
my
$github_name
=
$user
->{name} ||
die
;
$c
->session->set(
'name'
=>
$github_name
);
$c
->session->set(
'site'
=>
'github'
);
return
$c
->redirect(
'/'
);
}
});
The arguments of this callback function is a auth module specific.
- user_info
-
In auth module that uses OAuth2, is not required to fetch user information, just get a access_token. If you don't need a user information, you can set false value on this attribute.
This attribute is true by default on most modules for your laziness.
- on_error
-
Auth module calls this callback function when error occurred.
Arguments are following format.
my
(
$c
,
$err
) =
@_
;
The default value is following.
sub
{
my
(
$c
,
$err
) =
@_
;
die
"Authentication error in $module: $err"
;
}
AUTHOR
Tokuhiro Matsuno <tokuhirom AAJKLFJEF GMAIL COM>
SEE ALSO
LICENSE
Copyright (C) Tokuhiro Matsuno
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.