<%doc>
<% Dumper($user_info) %>
<%doc> use LWP::UserAgent; use JSON::XS; use URI; use Encode; use URI; use URI::QueryParam; my $JSON = JSON::XS->new->utf8; Manual redirect: use session::AUTH::VKontakte; my $site = $state->development ? 'www' : 'www'; my $vk_connect = session::AUTH::VKontakte->new( vk_redirect_uri => 'http://'.$site.'/oauth/vkontakte.html', ); <%once> my $site = $state->development ? '' : ''; <%args> $code => undef <%init> my $res; my $info; my $vk_connect = session::AUTH::VKontakte->new; my $auth_url = $vk_connect->authorize_url; if ( $code ) { my $local_session = $vk_connect->authenticate( code => $code ); if ( ref $local_session eq 'session::Session' && $local_session->id ) { my $profile = $keeper->{users}->get_profile( id => $local_session->{id} ) if exists $keeper->{users}; if ( ref $profile ) { unless ( exists $local_session->{avatar} ) { my $avatar = $profile->get_image('avatar'); $session->{avatar} = ref $avatar && exists $avatar->{filename} ? $avatar->{mini}{'54x54'}{filename} : undef; $local_session->set ( name => $profile->name_full, last_name => $profile->name_family, first_name => $profile->name_part, avatar => $session->{avatar}, ); } else { $local_session->set ( name => $profile->name_full, last_name => $profile->name_family, first_name => $profile->name_part, ); } } } } elsif ( $auth_url ) { $m->redirect($auth_url->as_string); } else { &abort404 unless $DEBUG; }