# NAME Amon2::Auth::Site::Google - Google auth integration for Amon2 # SYNOPSIS #add config +{ Auth => { client_id => 'client id', client_secret => 'client secret', redirect_url => 'redirect url', scope => 'scope' } } #add app __PACKAGE__->load_plugin('Web::Auth', { module => 'Google', on_finished => sub { my ($c, $access_token, $refresh_token, $user) = @_; my $id = $user->{id}; #e.g. 123456789 my $name = $user->{name}; #e.g. Nao Takanashi my $birthday = $user->{birthday}; #e.g. 1988-07-25 $c->session->set(google => +{ access_token => $access_token, refresh_token => $refresh_token user => $user, }); return $c->redirect('/'); }, on_error => sub { my ($c, $error_message) = @_; ... }, }); # DESCRIPTION Amon2::Auth::Site::Google is a Google authenticate module for Amon2 # ATTRIBUTES - client\_id (required) - client\_secret (required) - redirect\_url (required) - scope (Default: \[qw(https://www.googleapis.com/auth/userinfo.profile)\]) - user\_info (Default: true) If true, this module fetch user data immediately 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. - 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, $refresh_token, $user) = @_; ... } If you set $auth-user\_info> as a false value, authentication engine does not pass $user. # SEE ALSO - Using OAuth 2.0 to Access Google APIs [https://developers.google.com/accounts/docs/OAuth2](https://developers.google.com/accounts/docs/OAuth2) - Amon2::Plugin::Web::Auth [https://metacpan.org/module/TOKUHIROM/Amon2-Auth-0.03/lib/Amon2/Plugin/Web/Auth.pm](https://metacpan.org/module/TOKUHIROM/Amon2-Auth-0.03/lib/Amon2/Plugin/Web/Auth.pm) # LICENSE Copyright (C) ntakanashi. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # AUTHOR ntakanashi