Kimlik doğrulama için OpenID'leri kullanmak üzere Net::OpenID::Consumer
kullanan bir Dancer web uygulaması yazdım. Google ve MyOpenID ile iyi çalışıyor, ancak Yahoo değil. Bir kullanıcı, Yahoo hesabını kullanarak kimlik doğrulaması çalıştığında, HTML::Parser
uyarıyor:Net :: OpenID :: Consumer ile Yahoo OpenIDs kullanarak kodlama hatalarını nasıl önleyebilirim?
Parsing of undecoded UTF-8 will give garbage when decoding entities
ve bu uyarı Uygulamamı (haklı nedenle) öldürür.
Net::OpenID::Consumer
(veya Ortak) ile ilişkili herhangi bir hata göremiyorum.
HTTP üstbilgileri ve HTML meta etiketleri, "hak talebinde bulunulan id" URI'sı için UTF-8 belirtiyor.
Yanıt neden HTML::Parser
için çözülmez? Belli bir şey eksik miyim?
İlgili kod İşte:
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;
}
};
[kodunuzu göster] (http://sscce.org) insanlar (http [sorunu yeniden] böylece: // www.chiark.greenend.org.uk/~sgtatham/bugs.html#showmehow). – daxim
HTML'yi Parser'a iletmeden önce şifresini çözmediğiniz için, kodu çözün. Eğer bu LWP ise, '-> content' yerine' -> decoded_content' kullanılır. –
user1215106, Net :: OpenId :: Common, HTML'mizi değil, kodumu ayırıyor ve ayrıştırıyor. – kbosak