Amon2-Auth-Site-LINE
view release on metacpan or search on metacpan
# in your web app
__PACKAGE__->load_plugin('Web::Auth', {
module => 'LINE',
on_finished => sub {
my($c, $token, $user) = @_;
my $user_id = $user->{userId};
my $name = $user->{displayName};
$c->session->set(user_id => $user_id);
$c->session->set(name => $name);
return $c->redirect('/');
},
on_error => sub {
my($c, $error_message) = @_;
...
}
});
DESCRIPTION
This is a LINE Login authentication module for Amon2. It uses LINE Login
v2.1 APIs.
ATTRIBUTES FOR CONFIGURATION FILE
Following attributes are set in your configuration file such like
"config/production.pl" and so on.
client_id
Mandatory. It is issued on LINE Developers Console.
client_secret
Mandatory. It is issued on LINE Developers Console.
redirect_uri
Optional. It's used for some API's "redirect_uri" parameter. If it's
ommited, "callback_path" which is passed as an attribute for
argument is used instead of it.
state
Optional. If you don't set nothing, it generates a random string.
The "state" parameter is used a system for preventing CSRF on OAuth
2.0. This attribute should not be set some foreseeable fixed value.
scope
API scope as an array-ref. Acceptable values are: "profile",
"openid" and "email". See detail:
<https://developers.line.biz/en/docs/line-login/integrate-line-login
/#scope> Default value is "['profile']".
nonce
Optional. If you don't set nothing, it generates a random string.
The "nonce" parameter is used a system for preventing replay attack
/ token interception attack on OpenID Connect. This attribute should
not be set some foreseeable fixed value.
prompt
Optional. "consent" is acceptable.
max_age
Optional. Specified on OpenID Conjnect Core 1.0.
ui_locales
Optional. Specified on OpenID Conjnect Core 1.0.
bot_prompt
Optional. "normal" and "aggressive" are acceptable.
state_session_key
Optional. "state" parameter is kept on session with this specified
session key during authentication. Default values
"line_login_state".
nonce_session_key
Optional. "nonce" parameter is kept on session with this specified
session key during. Default values "line_login_nonce".
ATTRIBUTES FOR ARGUMENT
authenticate_path
Optional. Default value is "/auth/line/authenticate". The path works
for "login link".
callback_path
Optional. Default value is "/auth/line/callback".
on_finished
Mandatory. The details are described following.
on_error
Optional. The details are described following.
user_info
Optional. If it's true, this module fetches the user information
after authentication.
METHODS
"$auth->auth_uri($c:Amon2::Web, $callback_uri : Str) :Str"
Get a authenticate URI.
"$auth->callback($c:Amon2::Web, $callback:HashRef) : Plack::Response"
Process the authentication callback dispatching.
$callback MUST have two keys.
on_error
on_error callback function is called when an error occurs.
The arguments are following:
sub {
my ($c, $error_message) = @_;
...
}
on_finished
on_finished callback function is called if an authentication was
finished.ck function is called After successful authentication.
The arguments are following:
sub {
my ($c, $access_token, $api_response) = @_;
...
( run in 1.596 second using v1.01-cache-2.11-cpan-ceb78f64989 )