Billet du blogue

Questions sur OpenID + CodeIgniter

Un lecteur m’a envoyé il y a quelques jours, une question à propos de la méthode que j’utilise pour permettre l’utilisation d’OpenID sur ce blogue, propulsé par CodeIgniter.

Je m’apprêtais à lui répondre par courriel, mais j’ai pensé que d’autres lecteurs-utilisateurs-de-CI pourraient avoir la même question.

Est-ce que je compte partager ma solution OpenID avec la communauté? La réponse : Pas pour l’instant. Pourquoi? Voici pourquoi :

Mauvais code

Ma solution actuelle est en fait constituée (en langage CodeIgniter) d’un plugin, d’un contrôleur, d’une vue et d’un fichier PHP exclu de CodeIgniter — ce-dernier est nécessaire pour parser la variable $_GET de PHP, inutilisable avec CI.

Le contenu de ces fichiers est en fait du contenu récupéré de l’exemple fourni par la librairie PHP OpenID de JanRain. Celui-ci est donc confus et irrégulier, parfois utilisant du code à la CodeIgniter, parfois non.

Le fait de répartir du code en 4 fichiers différents n’est pas optimal non plus — je devrais revoir la structure globale de mon approche avec OpenID.

Je crois qu’il existe bien assez de code malpropre et désorganisé sur le Web — pas besoin d’y rajouter le mien. Bref, tant qu’à avoir du code illisible et mal structuré, aussi bien ne pas le partager publiquement.

Sécurité

Une autre des raisons qui me font hésiter, c’est au niveau de la sécurité de mon application. J’avoue m’être soucié de la sécurité de mon engin de blogue, mais je ne pense qu’il est à 100% sécuritaire. En ne publiant pas le code, j’évite donc de permettre aux hackers d’étudier celui-ci dans le but d’y trouver des failles.

Si j’avais publié mon code dès le départ, quelqu’un aurait pu trouver la fameuse faille qui faisait en sorte que n’importe qui pouvait se connecter avec n’importe quel identifiant…

La prochaine étape? Recommencer une application CodeIgniter à partir de zéro. De cette façon, je pourrai mieux penser à la structure de ma librairie OpenID. Je pourrai aussi la développer indépendamment de mon engin de blogue, ce qui fait que je n’aurai pas à l’extraire à chaque fois.

Donc en attendant, je suis désolé pour ceux qui pensaient avoir droit à une librairie PHP OpenID sous peu — mais je promets d’y consacrer un peu de mon temps libre!

Mise à jour

2 octobre 2007 : Hier soir, après avoir écrit ce billet, je me suis tout de suite créé une nouvelle application CodeIgniter pour optimiser ma librairie OpenID. Le résultat? À minuit hier, j’avais devant moi « CodeIgniter OpenID », que je lancerai ce soir, ici-même, pour la communauté francophone. Je compte bien écrire un billet à son sujet, mais pour l’instant, laissez-moi vous révéler la structure de la librairie — beaucoup plus simple que la précédente :

/application/
   librairies/
     ciopenid/
       tmp/          # Le dossier qui contient les "nonces"
       includes.php  # Le fichier qui contient des fonctions
                     # utilisées par les deux fichiers "ciopenid.php"
     openid/
       Auth/         # C'est ici que se trouve la librairie PHP OpenID
   controllers/
     ciopenid.php    # Le controller CI
 /ciopenid.php      # Le fichier qui n'est pas géré par CodeIgniter
                    # puisqu'il doit utiliser la varaible $_GET

Cela peut sembler confus, mais pour résumer, la librairie est :

  • Un controller,
  • Un fichier « includes.php »,
  • Un dossier openid qui contient la librairie PHP OpenID,
  • Un fichier ciopenid.php situé à la racine du site et qui est exclus du processus de rewriting de CodeIgniter

J’ai hâte à ce soir!

Posté le avec les tags: , et .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet3 commentaires

  • Salut,

    Merci pour ta réponse en tout cas… Je comprends tout à fait ton point de vue, et je n’en pensais pas moins. C’est aussi pour ça que j’étais passé par mail et non directement dans les commentaires du blog.

    Par contre, c’est dingue, je n’arrive plus à me connecter avec mon OpenID. Tu n’en aurais pas profiter pour changer quelque chose ?

    Tom (2 octobre 2007 à 3:16 EST)

  • Bizarre, en effet.

    Mais laisse-moi te rassurer en te disant que je me suis couché à minuit hier soir, pour travailler sur « CodeIgniter OpenID ». Je compte lancer la première version alpha ce soir!

    Tu pourras faire des tests et me dire ce qui cloche selon toi.

    Rémi Prévost (2 octobre 2007 à 6:59 EST)

  • Mon mail aura peut-être servi alors… ça t’aura décidé !

    J’ai hâte à ce soir!

    Moi aussi !!!

    PS : l’OpenID marche depuis chez moi.

    Tom (2 octobre 2007 à 13:33 EST)