tetsunosukeのnotebook

tetsunosukeのメモです

TypeKey signature verification failed

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&amp;t=$token&amp;_return=$url\">sign in</a>";
  print "<br>";  print "<a href=\"https://www.typekey.com/t/typekey/login?t=$token&amp;_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&amp;t=$token&amp;_return=$url&amp;v=1.1\">sign in</a>";
  print "<br>";  print "<a href=\"https://www.typekey.com/t/typekey/login?t=$token&amp;_return=$url&amp;v=1.1\">sign in (not use mail)</a>";
  print "<br>";  print "<a href=\"https://www.typekey.com/t/typekey/logout?_return=$url&amp;v=1.1\">sign out</a>";