Net::OpenID::ServerのOpenID 2.0対応patch update

前回からupdate

http://nomadscafe.jp/tmp/openid_server_20_20080303.patch


id:miyagawaと話して、APIは前回のget_identityでいいんじゃないかとなったので、方向性は変わらずで、

面倒なのでsha1だけのサポートにして、pod追加して、test足した。


limilic、fastladder、pibb、plaxo、livejournal、ついついツイッターあたりでも検証しました


Catalystのsampleみたいなのを書いておきます

my $server = Net::OpenID::Server->new(
    post_args => $c->req->params,
    get_args => $c->req->params,
    endpoint_url => $c->uri_for('/server'),
    setup_url => $c->uri_for('/login'),
    get_user => sub {
        return $c->user_exists ? $c->user : undef;
    },
    get_identity => sub {
        my( $u, $identity ) = @_;
        return $identity unless $u;
        return $c->uri_for( sprintf('/user/%s', $u->username ) );
    },
    is_identity => sub {
         my($u, $identity) = @_;
         return $u && $u->username eq (split '/', $identity)[-1];
    },
    is_trusted => sub {
        my($u, $trust_root, $is_identity) = @_;
        return $is_identity;
    }
);

my ( $type, $data ) = $server->handle_page();

if ( $type eq 'redirect' ) {
    return $c->res->redirect($data);
}
elsif ( $type eq 'setup' ) {
    my $uri = $c->uri_for('/login', $data );
    return $c->res->redirect($uri);
}
else {
    $c->res->content_type($type);
    $c->res->body($data);
}
created by blog.nomadscafe.jp

コメント

コメントはありません

コメントを投稿

コメントを投稿するにはログインが必要です