我在CodeIgniter中使用了Zend的OpenId库,除了verify函数之外,一切都运行得很好。
$status = "";
if (isset($_POST['openid_action']) &&
$_POST['openid_action'] == "login" &&
!empty($_POST['openid_identifier'])) {
$consumer = new Zend_OpenId_Consumer();
if (!$consumer->login($_POST['openid_identifier'])) {
$status = "OpenID login failed.";
}
} else if (isset($_GET['openid_mode'])) {
if ($_GET['openid_mode'] == "id_res") {
$consumer = new Zend_OpenId_Consumer();
if ($consumer->verify($_GET, $id)) {
$status = "VALID " . htmlspecialchars($id);
} else {
$status = "INVALID " . htmlspecialchars($id);
}
} else if ($_GET['openid_mode'] == "cancel") {
$status = "CANCELLED";
}
}Openid库需要一个Zend会话才能启动,所以我也包含了这个库。我能够:输入openid,重定向到'openid-provider',在那里验证,然后重定向回来。
但是,我无法检索到'openid_mode',因此我无法‘验证’该信息。我不明白我做错了什么。如果没有一些严重的黑客攻击,这个库就不能与CI一起工作了吗?
发布于 2010-09-29 17:31:44
你试过CodeIgniter’s OpenID library吗?
发布于 2010-09-29 20:29:59
Zend的OpenId系统在很多方面都存在缺陷(它不能与谷歌、雅虎等公司兼容)。我认为使用这个库会更好:http://www.janrain.com/openid-enabled
https://stackoverflow.com/questions/3818086
复制相似问题