PerlのAuthen::TypeKeyを使っているのですが「TypeKey signature verification failed」というメッセージが出て認証に失敗します。tokenもちゃんと設定しているはずなのでなぜこうなるのかさっぱり・・・。
とりあえず_verify関数の中で数値がどうなっているか全部printしてみるしかないのかな。
ちなみにPHPのひらたさんが作っているAuth_TypeKeyに関しては借りてるサーバがgmpもbcmathもサポートしていなくて使えないというオチ。verifyの部分だけCGIで作って認証結果返すようにしようかなとちょっと思っています・・・。>_<;
ていうかCGIじゃだめで、内部呼び出しにしないと意味ないね
続編
$tk->version(1);
にしたら動いた!!!
ってことで、
my $q = CGI->new; my $tk = Authen::TypeKey->new; my $return_url = 'url'; $tk->token($token); $tk->version($q->param('version')); my $res = $tk->verify($q);
とりあえずこんな感じにしておいてv1とv1.1できちんと分ければOKっぽい。
my $url = url_encode($return_url); print "<h2>version 1</h2>"; print "<a href=\"https://www.typekey.com/t/typekey/login?need_email=1&t=$token&_return=$url\">sign in</a>"; print "<br>"; print "<a href=\"https://www.typekey.com/t/typekey/login?t=$token&_return=$url\">sign in (not use mail)</a>"; print "<br>"; print "<a href=\"https://www.typekey.com/t/typekey/logout?_return=$url\">sign out</a>"; print "<h2>version 1.1</h2>"; print "<a href=\"https://www.typekey.com/t/typekey/login?need_email=1&t=$token&_return=$url&v=1.1\">sign in</a>"; print "<br>"; print "<a href=\"https://www.typekey.com/t/typekey/login?t=$token&_return=$url&v=1.1\">sign in (not use mail)</a>"; print "<br>"; print "<a href=\"https://www.typekey.com/t/typekey/logout?_return=$url&v=1.1\">sign out</a>";