[SPIP Zone] [spip-dev] Plugin OpenID pour Spip

  Continuons sur spip-zone.

   Intéressant que ça fasse une page blanche: c'est le cas pour toutes
les pages, ou seulement la page de login? Quelle version de Spip ? Tu
as bien les librairies PHP OpenID?

Edouard

On 3/25/07, Fil <fil@rezo.net> wrote:

> > Dites-moi si ça marche pour vous, ce que je peux améliorer!

Ca me fait page blanche quand j'active le plugin ; pas d'erreur
signalée dans apache ni dans spip.log.

PS/ ce serait mieux de discuter sur spip-zone ; par ailleurs tu
mentionnes des difficultés à utiliser les fonctions d'auth de SPIP
faute d'API ; pense à expliquer comment on pourrait faire évoluer ce
code de manière à lever le problème :slight_smile:

-- Fil

   Intéressant que ça fasse une page blanche: c'est le cas pour toutes
les pages, ou seulement la page de login?

Ca plante exec=admin_plugins je ne suis pas allé plus loin

Quelle version de Spip ?

svn du jour

Tu as bien les librairies PHP OpenID?

Non, je ne crois pas.

-- Fil

> Tu devrais détecter qu'elles sont absentes et le signaler, ou (ma
> préférence) les livrer avec le plugin.

J'ai modifié un peu ton code pour qu'il intègre correctement une
librairie installée avec le plugin et corrigé une incompatibilité avec
1.9.2

J'obtiens bien le formulaire de login ; mais quand j'entre mon url je
me fais jeter avec le code suivant :

The request was not a valid OpenID request. While processing the
request, the following error occurred: return_to
u'http://127.0.0.1:80/~fil/spipspip.php?action=cookie_openid&url=ecrire/&nonce=vrieiQGu
not under trust_root u'http://127.0.0.1:80/~fil/spip

Visiblement il manque un slash quelque part, je lâche l'affaire pour le moment.

Si tu veux je peux commit les modifs que j'ai faites, y compris
l'ajout des librairies.

Le principal problème que je vois à ce stade, c'est que tu charges
toute la librairie à chaque hit sur le site, ce qui risque d'être très
coûteux en temps de réponse.

-- Fil

  Hello,

    Idéalement, envoie-moi les modifs avant que je les regarde, je
fais un commit ensuite? C'est vrai qu'il vaudrait mieux charger les
libs OpenID dans le coeur de Spip plutôt qu'à chaque hit, il y a des
points d'entrée pour ça ?

     Sinon c'est pas possible de faire un login avec 127.0.0.1 puisque
l'IDP ne pourra pas renvoyer le résultat à un serveur tournant sur
127.0.0.1 - ca bouclera sur l'IDP lui-même. Pour le slash, je vois où
c'est, je vais bosser là-dessus.

Edouard

On 3/26/07, Fil <fil@rezo.net> wrote:

> > Tu devrais détecter qu'elles sont absentes et le signaler, ou (ma
> > préférence) les livrer avec le plugin.

J'ai modifié un peu ton code pour qu'il intègre correctement une
librairie installée avec le plugin et corrigé une incompatibilité avec
1.9.2

J'obtiens bien le formulaire de login ; mais quand j'entre mon url je
me fais jeter avec le code suivant :

The request was not a valid OpenID request. While processing the
request, the following error occurred: return_to
u'http://127.0.0.1:80/~fil/spipspip.php?action=cookie_openid&url=ecrire/&nonce=vrieiQGu
not under trust_root u'http://127.0.0.1:80/~fil/spip

Visiblement il manque un slash quelque part, je lâche l'affaire pour le moment.

Si tu veux je peux commit les modifs que j'ai faites, y compris
l'ajout des librairies.

Le principal problème que je vois à ce stade, c'est que tu charges
toute la librairie à chaque hit sur le site, ce qui risque d'être très
coûteux en temps de réponse.

-- Fil

    Idéalement, envoie-moi les modifs avant que je les regarde, je
fais un commit ensuite?

Comme tu veux ; je peux aussi les commit direct et tu censures ce qui
ne va pas :slight_smile:
Enfin je dis ça, c'est chez moi, donc ce soir au plus tôt.

C'est vrai qu'il vaudrait mieux charger les
libs OpenID dans le coeur de Spip plutôt qu'à chaque hit, il y a des
points d'entrée pour ça ?

Je ne crois pas qu'il y ait besoin de plus qu'actuellement. Il faudra
juste faire une fonction init_openid() qui fera cette initialisation à
la demande.

     Sinon c'est pas possible de faire un login avec 127.0.0.1 puisque
l'IDP ne pourra pas renvoyer le résultat à un serveur tournant sur
127.0.0.1 - ca bouclera sur l'IDP lui-même. Pour le slash, je vois où
c'est, je vais bosser là-dessus.

127.0.0.1 c'est mon site ; mon openid est sur fil.myopenid.com

-- Fil

J'ai envoyé une version contenant les librairies locales, et où
l'initialisation est dans une fonction ; il faudrait maintenant
initialiser à bon escient et pas à chaque hit, ça économiserait les
perfs.

Mais au moins ça marche chez moi :slight_smile:

-- Fil

initialiser à bon escient et pas à chaque hit, ça économiserait les
perfs.

voilà qui est fait

mais j'ai encore des bugs :
- je n'arrive pas à me déloguer de SPIP
- je ne sais pas me déloguer de openid.com non plus !
- l'icone dans le input ne passe pas dans safari

-- Fil

- je n'arrive pas à me déloguer de SPIP

OK, je devais avoir des vieux cookies, il faudra vérifier que quand on
se délogue les deux méthodes sont supprimées, sinon on ne comprend
rien...

- je ne sais pas me déloguer de openid.com non plus !

j'ai trouvé

Bon il faudrait implanter l'autre morceau maintenant :slight_smile:
http://www.openidenabled.com/openid/simple-registration-extension

-- Fil

  Super, et ça marche encore chez moi. Je vais mettre à jour l'archive
tar sur spip-contrib et mettre à jour la doc/commentaires. Et comme tu
dis, le challenge suivant, c'est de faire l'enregistrement
automatique.

   Niveau codage: je suis obligé d'utiliser 'session_start()' dans ce
plugin, ce qui me chagrine: spip ne lance-t-il pas une session? N'y
aurait-il pas un moyen de récupérer la session courante? Mon feeling
et que là, ça marche, mais que ce n'est pas très propre...

Ed

On 3/26/07, Fil <fil@rezo.net> wrote:

> - je n'arrive pas à me déloguer de SPIP

OK, je devais avoir des vieux cookies, il faudra vérifier que quand on
se délogue les deux méthodes sont supprimées, sinon on ne comprend
rien...

> - je ne sais pas me déloguer de openid.com non plus !

j'ai trouvé

Bon il faudrait implanter l'autre morceau maintenant :slight_smile:
http://www.openidenabled.com/openid/simple-registration-extension

-- Fil

  Super, et ça marche encore chez moi. Je vais mettre à jour l'archive
tar sur spip-contrib

pas utile, tu peux faire un document distant vers
files.spip.org/spip-zone/openid.zip (après avoir indiqué le paquet
dans archivelist.txt à la racine de spip-zone)

et mettre à jour la doc/commentaires. Et comme tu
dis, le challenge suivant, c'est de faire l'enregistrement
automatique.

   Niveau codage: je suis obligé d'utiliser 'session_start()' dans ce
plugin, ce qui me chagrine: spip ne lance-t-il pas une session? N'y
aurait-il pas un moyen de récupérer la session courante? Mon feeling
et que là, ça marche, mais que ce n'est pas très propre...

Il reste plein de choses à voir ... c'est pour ça que je voulais que
ça fonctionne, déjà. Des truc à nettoyer (il y a trop de code, à la
limite il faudra patcher le core pour permettre de s'insérer plus
finement dedans).

Un problème, par exemple : mon identifiant est désormais
http://fil.rezo.net/ mais d'habitude je mets http://rezo.net/ (site
collectif) comme url_site

Un autre : je voudrais avoir à taper juste fil.rezo.net

... et aussi des choses à développer.

-- Fil