有一个简单的Net :: OpenID :: Consumer :: Lite CGI脚本的工作示例吗?

时间:2009-10-30 05:22:51

标签: perl openid cgi

我在CPAN上看到了Net::OpenID::Consumer::Lite的示例,但我希望得到一个使用POST方法的脚本。如果没有人这么做,那么一旦我开始工作,我就会把我的解决方案发回这里。

1 个答案:

答案 0 :(得分:3)

这似乎是清单中唯一适用的测试,似乎没有太大用处 http://cpansearch.perl.org/src/TOKUHIROM/Net-OpenID-Consumer-Lite-0.02/xt/001_mixi.t Apache2::AuthMixi also uses it a bit

此模块只是委托给LWP::UserAgent。我不喜欢它,它应该是LWP :: UserAgent的子类而不是委托。您可以在cpan上找到LWP::UserAgent的文档,并通过隐藏方法_ua访问基本副本(但按照惯例,前面的下划线告诉您它不受支持,它应该是保守秘密)

my $csr = Net::OpenID::Consumer::Lite->new();
$csr->_ua->post(); # same as LWP::UserAgent::post()

好像你应该只使用调用handle_server_response() _check_authentication()的{​​{1}}调用代理_get()的{​​{1}}。

check_authentication()想要一个包含->_ua->get()not_openidsetup_requiredcancelledverified的5个事件的HashRef跳转表。另外我相信它需要一堆关键(error)前缀和值。

根据代码,要发送的请求openid.必须存在$request->{'openid.mode'}并设置(最好是)$request,而不是设置为“取消”。必须在逻辑上不设置check_authentication密钥,否则它只会调用相应的回调。它还必须有一个openid.user_setup_url密钥集,这是请求发往的地方。

此代码不难阅读,I'd suggesting taking a look author also seems to have a bunch of modules这是一个好兆头。我不喜欢像这样的数据的跳转表,从UI的角度来看,这似乎很奇怪。