Net::OpenID::Consumer
認証に OpenID を使用する Dancer Web アプリを作成しました。Google と MyOpenID ではうまく機能しますが、Yahoo ではうまく機能しません。ユーザーが Yahoo アカウントを使用して認証しようとすると、次のHTML::Parser
警告が表示されます。
Parsing of undecoded UTF-8 will give garbage when decoding entities
そして、この警告は私のアプリを殺します(当然のことです)。
Net::OpenID::Consumer
これに関連する (または共通の)既存のバグは見当たりません。
HTTP ヘッダーと HTML メタ タグは両方とも、'claimed id' URI に UTF-8 を指定します。
に対して応答がデコードされないのはなぜHTML::Parser
ですか? 明らかな何かが欠けていますか?
関連するコードは次のとおりです。
get '/openid_landing' => sub {
my $params = params();
my $csr = Net::OpenID::Consumer->new(
ua => LWP::UserAgent->new(),
consumer_secret => $secret,
params => $params,
);
my $id = $params->{'openid.claimed_id'};
if (my $setup_url = $csr->user_setup_url) {
redirect $setup_url;
} elsif ($csr->user_cancel) {
redirect uri_for('/');
} elsif (my $vident = $csr->verified_identity) {
# verified identity, log in or register user
...
} else {
die "Error validating identity: " . $csr->err;
}
};