Revision 557 (by ahitrov, 2016/03/29 09:17:33) |
VK Auth upgrade
backend html code update
|
<!DOCTYPE html>
<head>
<script type="text/javascript">
<!--
opener.location.reload(true);
close();
//-->
</script>
</head>
</html>
<%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',
);
</%doc>
<%once>
my $site = $state->development ? '' : '';
</%once>
<%args>
$code => undef
</%args>
<%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;
}
</%init>
Небольшая справка по веткам
cnddist – контейнер, в котором хранятся все дистрибутивы всех библиотек и программных пакетов, которые использовались при построении различных версий Contenido. Если какой-то библиотеки в данном хранилище нет, инсталлятор сделает попытку "подтянуть" ее с веба (например, с CPAN). Если библиотека слишком старая, есть очень большая вероятность, что ее там уже нет. Поэтому мы храним весь хлам от всех сборок. Если какой-то дистрибутив вдруг отсутствует в cnddist - напишите нам, мы положим его туда.
koi8 – отмирающая ветка, чей код, выдача и все внутренние библиотеки заточены на кодировку KOI8-R. Вносятся только те дополнения, которые касаются внешнего вида и функционала админки, баги ядра, обязательные обновления портов и мелочи, которые легко скопипастить. В дальнейшем планируется полная остановка поддержки по данной ветке.
utf8 – актуальная ветка, заточенная под UTF-8.
Внутри каждой ветки: core – исходники ядра; install – скрипт установки инсталляции; plugins – плагины; samples – "готовые к употреблению" проекты, которые можно поставить, запустить и посмотреть, как они работают.