我在CPAN上看到了Net::OpenID::Consumer::Lite的示例,但我希望得到一个使用POST方法的脚本。如果没有人这么做,那么一旦我开始工作,我就会把我的解决方案发回这里。
答案 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_openid
,setup_required
,cancelled
和verified
的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的角度来看,这似乎很奇怪。