php 用户身份验证库/框架...都有哪些选项? [关闭]

Posted

技术标签:

【中文标题】php 用户身份验证库/框架...都有哪些选项? [关闭]【英文标题】:php user authentication libraries / frameworks ... what are the options? [closed]php 用户身份验证库/框架...有哪些选项? [关闭] 【发布时间】:2010-11-12 07:01:45 【问题描述】:

我正在为我正在处理的项目使用 php 和 codeigniter 框架,并且需要用户登录/身份验证系统。

现在我宁愿不使用 SSL(可能有点过分,而且我使用共享主机的事实不鼓励这样做)。我曾考虑使用 openID,但决定由于我的目标受众通常不是技术人员,它可能会吓跑用户(更不用说它需要镜像登录信息等)。我知道我可以编写基于哈希的身份验证(例如 sha1),因为没有传递敏感数据(我会将敏感级别与 *** 的敏感级别进行比较)。

话虽如此,在制作自定义解决方案之前,最好知道是否有任何好的库或包可用于提供半安全身份验证?我是 codeigniter 的新手,但是可以很好地集成它的东西会更好。有任何想法吗? (我对我的方法持开放态度,并对我为什么不使用 ssl 可能会发疯的建议持开放态度)。提前致谢。

更新:我研究了一些建议。我很想尝试 zend-auth,因为它似乎得到了很好的支持和构建。有没有人有在 codeigniter 中使用 zend-auth 的经验(它是不是太笨重了?),你有关于将它与 CI 集成的很好的参考吗?我不需要任何复杂的身份验证方案......只需一个简单的登录/注销/密码管理授权系统。

此外,dx_auth 似乎也很有趣,但我担心它太麻烦了。其他人在这方面取得了成功吗?

我意识到我还想以与 *** 类似的方式管理来宾用户(即未登录/注册的用户)。所以任何具有此功能的建议都会很棒

【问题讨论】:

查看答案:***.com/questions/1106604/… 还有PEAR的auth组件 您可能想看看github.com/delight-im/PHP-Auth,它既与框架无关,也与数据库无关。 【参考方案1】:

我使用 Zend_Auth。但我通常使用 Zend Framework。据我所知,它与 CI 很好地集成在一起。对于 Zend_Auth,我使用了一个 Db_Table 适配器和一个带有全局盐的 SHA1。我认为这对于许多用途来说已经足够了。

【讨论】:

几年后的经验,我现在知道 codeigniter 已经过时了。我现在什么都用 ZF,需要学习 Doctrine。【参考方案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'];
       


    

【讨论】:

我也将它用于许多项目并取得了成功。它很简单,几乎可以满足您的所有需求。【参考方案3】:

如果您想让 zend-auth 在 codeigniter 中工作,看起来 this 可能正是您正在寻找的东西。如果您发现 zend-auth 和 codeigniter 是一个很好的组合,请再次更新您的问题..

我个人觉得破解 dx_auth 是一件很痛苦的事,尤其是因为它缺乏文档,如果听起来很有希望,我很乐意尝试其他的东西。

【讨论】:

谢谢,我可以试一试

以上是关于php 用户身份验证库/框架...都有哪些选项? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 Backbone Js 和 SLIM 框架进行用户身份验证

开放的 websocket 连接都有哪些安全问题?

IIS Windows集成身份验证替代方法?

Python 都有哪些好的 Web 框架

使用 PHP 将用户名放在 apache access_log 中,但不使用 HTTP 身份验证

使用 global.asax 都有哪些替代方法?