CatalystでTypeKey認証
実験でいろいろとやるうちに、
use Catalyst qw/-Debug Static::Simple Config::YAML FormValidator::Simple Session Session::Store::FastMmap Session::State::Cookie Authentication Authentication::Credential::TypeKey/;
SessionとAuthentication関連が長いし大杉。
すっきりと書ける方法ないですかねぇ。
CatalystでTypeKey認証をする、Catalyst::Plugin::Authentication::Credential::TypeKeyは以下のような形で使用できる。
CPANにあがっていない場合はこちらのページからたどると入手できるはず。
use Catalyst qw/Authentication Authentication::Credential::TypeKey/;#セッションもあるといい sub do_login : Local { my ( $self, $c ) = @_; $c->authenticate_typekey; $c->res->redirect('/'); } sub login : Local { my ( $self, $c ) = @_; $c->res->redirect('https://www.typekey.com/t/typekey/login?t=' . $c->config->{authentication}{typekey}{token} . '&_return=' . $c->uri_for('/do_login')); }
typekeyの認証がVer. 1.1ではうまく行かないらしいので、設定で
authentication: typekey: version: 1 token: ** use_session: 1
などとする必要があるらしい。
と書いていたら、さきほどmiyagawaさんがCatalystのMLで発言されていて、
But let me admit that there was a little funkiness when I first tried
the authentication using v1.1 and I believe it was related to
need_email part. Can you explicitly supply need_email=0 or 1 in the
original login URL for TypeKey and see what happens?
とも書いているのであとで試すことにしよう。
追記:
リダイレクトのリクエスト文字列にv=1.1を入れればOK
$c->res->redirect('https://www.typekey.com/t/typekey/login?t=' . $c->config->{authentication}{typekey}{token} . '&v=1.1&_return=' . $c->uri_for('/do_login'));
でいけました。もちろんconfigの「version: 1」もなしです。
コメント
いまもircでチャットしているんですが、きちんと token を指定して、v=1.1 をlogin URL に入れれば動くはずです。
投稿者: miyagawa | 2005年11月29日 06:52
$c->res->redirect(
'https://www.typekey.com/t/typekey/login?t=' .
$c->config->{authentication}{typekey}{token} . '&v=1.1&need_email=0&_return=' . $c->uri_for('/do_login')
);
これでうまくいきました。
投稿者: かぜぶろ | 2005年11月30日 00:01