1. Home
  2. Archive
  3. OAuthのSignature作るときのパラメータのソートは=で連結する前にすべし

OAuthのSignature作るときのパラメータのソートは=で連結する前にすべし

少々はまったので。

OAuth::Liteをつかっててなんかわかんないけど認証がこける現象に出くわしたので調べてみたら、パラメータをソートするときに=で連結した後にソートしてたから特定の場合にソート結果がおかしくなってた。

直そうと思ったら一週間くらい前に最新版で修正されてた。なので今は直ってます:)

ちなみに具体的にいうと以下のテストにこけてたです。

use Test::More;
use OAuth::Lite::Util;

my $params = {
    foo => 'bar',
    foo1 => 'bar1'
};

is OAuth::Lite::Util::normalize_params($params), 'foo=bar&foo1=bar1';

done_testing;

# Result: 
# 
#   Failed test at /var/folders/rw/rw+QJ8FDEO0V2F8SqobW6k+++TM/-Tmp-/v312769/44 line 9.
#          got: 'foo1=bar1&foo=bar'
#     expected: 'foo=bar&foo1=bar1'

コメントフォーム

スパムがひどいので一時的にコメントフォーム閉じます。ゴメンナサイ。