2009-07-20 6 views
8

J'utilise PHP et le framework codeigniter pour un projet sur lequel je travaille, et j'ai besoin d'un système de connexion/authentification d'utilisateur. Pour l'instant, je préfère ne pas utiliser SSL (peut-être trop et le fait que j'utilise l'hébergement partagé décourage cela). J'ai envisagé d'utiliser openID mais j'ai décidé que puisque mon public cible n'est généralement pas technique, il pourrait effrayer les utilisateurs (sans compter qu'il nécessite une mise en miroir des informations de connexion, etc.). Je sais que je pourrais écrire une authentification basée sur le hachage (comme sha1) car aucune donnée sensible n'est transmise (je comparerais le niveau de sensibilité à celui de stackoverflow). Cela dit, avant de faire une solution personnalisée, il serait bon de savoir s'il existe de bonnes bibliothèques ou des paquets là-bas que vous avez utilisés pour fournir une authentification semi-sécurisée? Je suis nouveau à codeigniter, mais quelque chose qui s'intègre bien avec lui serait préférable. Des idées? (Je suis ouvert à la critique sur mon approche et ouverte aux suggestions quant à la raison pour laquelle je pourrais être fou de ne pas simplement utiliser ssl). Merci d'avance.bibliothèques/cadres d'authentification utilisateur php ... quelles sont les options?

Mise à jour: J'ai examiné certaines des suggestions. Je suis curieux d'essayer zend-auth car il semble bien supporté et bien construit. Est-ce que quelqu'un a de l'expérience avec l'utilisation de zend-auth dans codeigniter (est-ce trop encombrant?) Et avez-vous une bonne référence pour l'intégrer avec CI? Je n'ai pas besoin de schémas d'authentification complexes. Il suffit d'un simple système d'autorisation de connexion/déconnexion/mot de passe.

De plus, dx_auth semble aussi intéressant, mais je crains que ce soit trop bogué. Est-ce que quelqu'un d'autre a eu du succès avec ça?

je réalisais que je voudrais également gérer les utilisateurs invités (c.-à-utilisateurs qui ne se connectent pas/registre) d'une manière similaire à stackoverflow..so des suggestions qui ont cette fonctionnalité serait génial

+0

vérifier la réponse: http://stackoverflow.com/questions/1106604/framework-for-administrating-users/1116855#1116855 –

+0

il y a aussi le composant Auth PEAR – kguest

+0

Vous pouvez jeter un oeil à l'adresse https: // github.com/delight-im/PHP-Auth qui est à la fois agnostique et indépendante de la base de données. – caw

Répondre

2

J'ai trouvé dx_auth pour être assez bon dans Codeigniter, et l'ai déjà utilisé. C'est certainement la bibliothèque d'authentification la plus complète pour Codeigniter.

Il y avait quelques choses que je devais faire pour le changer, ainsi j'ai prolongé leur classe d'utilisateur avec quelques fonctions pour mes buts (certaines de leurs fonctions ne font pas exactement ce que vous pourriez prévoir ..). Voici un segment de quelques-unes des personnalisations que j'ai fait:

 $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

Je l'ai aussi utilisé pour de nombreux projets et j'ai eu du succès avec ça. C'est simple et fait à peu près tout ce dont vous avez besoin. – ryeguy

4

J'utilise Zend_Auth . Mais je travaille avec Zend Framework en général. Pour ce que j'ai entendu il s'intègre bien avec CI. Avec Zend_Auth, j'utilise un adaptateur Db_Table et SHA1 avec un sel global. C'est assez pour de nombreuses raisons, je pense.

+0

Quelques années d'expérience plus tard, et je sais maintenant que le codeigniter est très ancien. J'utilise ZF pour tout maintenant, et j'ai besoin d'apprendre la Doctrine. –

2

On dirait this pourrait être exactement ce que vous cherchez, si vous voulez obtenir zend-auth travaillant dans CodeIgniter. S'il vous plaît mettez à jour votre question encore si vous trouvez zend-auth & codeigniter pour être un bon mélange ..

J'ai personnellement trouvé hacking dx_auth être une douleur, surtout pour son manque de documentation, et j'aimerais donner quelque chose d'autre un tir si cela semble prometteur.

+0

merci, je peux donner un coup de feu – oym

Questions connexes