2009-07-20 9 views
8

私は、作業中のプロジェクトにPHPとcodeigniterフレームワークを使用しており、ユーザーログイン/認証システムが必要です。PHPユーザ認証ライブラリ/フレームワーク...どのようなオプションがありますか?

今のところ、私はむしろSSLを使用しないでください(残念なことかもしれません。共有ホスティングを使用していると、このことは避けられます)。私はopenIDの使用を検討しましたが、ターゲットオーディエンスは一般的に技術的ではないため、ユーザーに迷惑をかける可能性があると判断しました(ログイン情報のミラーリングなどが必要ではありません)。機密データが渡されていないので、私はsha1などのハッシュベースの認証を書くことができることを知っています(私はstackoverflowの感度レベルと比較したい)。

カスタムソリューションを作成する前に、セミセキュアな認証を提供するために使用していた優れたライブラリやパッケージがあるかどうかを知ることは賢明でしょうか?私はcodeigniterを初めて使っていますが、それとうまく統合されたものが望ましいでしょう。何か案は? (私は私のアプローチについて批判し、なぜ私がSSLを使用するだけでなく狂っているのかもしれないのかについての提案を公開する)。前もって感謝します。

更新:いくつかの提案を検討しました。それがうまくサポートされ、うまく構築されているように私はzend-authを試してみたいと思っています。誰もがcodeigniterでzend-authを使った経験がありますか(それは大きすぎますか?)、それをCIと統合する上で参考にしていますか?複雑な認証方式は必要ありません。単純なログイン/ログアウト/パスワード管理認証システムです。

また、dx_authも面白そうですが、あまりにもバグだと心配です。他の誰かがこれで成功しましたか?

私はこの機能を持っている任意の提案をstackoverflow..soと同様に(登録/ログインしていないつまり、ユーザーが)

+0

チェックの答え: http://stackoverflow.com/questions/1106604/framework-for-administrating-users/1116855#1116855 –

+0

あなたがhttpsを見てみたいことがあり – kguest

+0

PEARのAuthコンポーネントでもあります:// github.com/delight-im/PHP-Authは、フレームワークにとらわれず、データベースに依存しません。 – caw

答えて

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']; 
     } 


    } 
+0

私はこれを数多くのプロジェクトにも使用しており、成功しています。それは簡単で、あなたが必要とするものはほとんどありません。 – ryeguy

4

素晴らしいことだ、私はにZend_Authを使う私もゲストユーザを管理したいことを実現。しかし私は一般的にZend Frameworkを使って作業しています。私が聞いたことは、CIとうまく統合されています。 Zend_Authでは、Db_TableアダプタとSHA1をグローバルなソルトで使用します。それは私が思う多くの目的のために十分です。

+0

後で数年の経験があり、私はcodeigniterが方法の日付であることを知っています。私は今のところZFを使い、Doctrineを学ぶ必要があります。 –

2

thisように見えますが、Zendの-AUTHはCodeIgniterの中で働いて取得したい場合、あなたが探している正確に何である可能性があります。 zend-auth & codeigniterが良い組み合わせであると分かった場合は、もう一度質問を更新してください。

私は個人的にdx_authをハッキングして、特にドキュメントが不足していることを痛感しています。有望であれば、何か別のショットを与える。

+0

ありがとう、私はこのショットを与えるかもしれません – oym

関連する問題