Skip to content

nipotan/p5-Amon2-Auth-Site-LINE

Repository files navigation

NAME

Amon2::Auth::Site::LINE - LINE integration for Amon2

SYNOPSIS

# in your configuration file

+{
    Auth => {
        LINE => {
            client_id     => '123456789Z',,
            client_secret => '01234567889abcdef0123456789abcdx',
            scope         => [qw(profile)],
        }
    }
}

# in your web app

__PACKAGE__->load_plugin('Web::Auth', {
    module => 'LINE',
    on_finished => sub {
        my($c, $token, $api_response) = @_;
        my $user_id = $api_response->{userId};
        my $name    = $api_response->{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.

AUTHOR

Koichi Taniguchi (a.k.a. nipotan) [email protected]

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages