我正在为我正在处理的项目使用PHP和codeigniter框架,并且需要用户登录/身份验证系统。
现在我宁愿不使用SSL(可能有点矫枉过正,而且我使用共享主机的事实不鼓励这样做)。我考虑过使用openID,但我认为由于我的目标受众通常不是技术人员,因此可能会吓跑用户(更不用说它需要镜像登录信息等)。我知道我可以编写基于散列的身份验证(例如sha1),因为没有传递敏感数据(我将灵敏度级别与stackoverflow的灵敏度进行比较)。
话虽如此,在制作自定义解决方案之前,最好知道是否有用于提供半安全身份验证的好库或包?我是codeigniter的新手,但是与它完美结合的东西会更好。有任何想法吗? (我对我的方法持批评态度并接受建议,为什么我可能会因为不使用ssl而疯狂)。提前谢谢。
更新:我已经研究了一些建议。我很想尝试zend-auth,因为它似乎得到了良好的支持和良好的构建。有没有人在codeigniter中使用zend-auth的经验(它是否太笨重?)你是否有一个很好的参考将它与CI集成?我不需要任何复杂的身份验证方案。只需一个简单的登录/注销/密码管理授权系统。
另外,dx_auth看起来也很有趣,不过我担心它太麻烦了。还有其他人在这方面取得了成功吗?
我意识到我还想以类似于stackoverflow的方式管理访客用户(即没有登录/注册的用户)。所以任何具有此功能的建议都会很棒
答案 0 :(得分:4)
我使用Zend_Auth。但我总体上使用Zend Framework。据我所知,它与CI完美结合。使用Zend_Auth,我使用Db_Table适配器和SHA1与全局盐。我认为这对于很多目的来说已经足够了。
答案 1 :(得分:2)
我发现dx_auth在Codeigniter中相当不错,并且之前已经使用过它。它肯定是Codeigniter最全功能的身份验证库。
我需要做一些改变它的事情,所以为了我的目的,我将一些函数扩展了他们的User类(他们的一些函数并不完全符合你的预期......)。以下是我所做的一些自定义的一部分:
$CI = &get_instance();
$CI->load->model("dx_auth/users");
/**
* For most things, try and use the dx_auth models,
* because it's already done, and some stuff is more
* annoying to figure out than might be expected.
*
* For anything site-specific, use this model instead.
*
*/
class UserModel extends Users {
/**
* Sometimes when dx_auth sucks, you have to compensate
* functions that return useful results.
*
* @param int $id id of user to check if banned
* @return int $banned returns the result (0 or 1)
*/
public function is_banned($id) {
$query = "SELECT banned FROM users WHERE id=".(int)$id;
$result=$this->db->query($query);
$row = $result->row_array();
return $row['banned'];
}
}
答案 2 :(得分:2)
如果你想让zend-auth在codeigniter中工作,this看起来就像你正在寻找的那样。如果您找到zend-auth& codeigniter是一个很好的混合..
我个人发现黑客dx_auth非常痛苦,特别是因为缺乏文档,如果听起来很有希望的话,我还想给别人一些机会。