[spip-dev] authentification externe

Bonjour,

J'ai ajouté une méthode d'autentification maison "mysql_educ".
j'ai donc
-Ajouter $GLOBALS['liste_des_authentifications']['mysql_educ']='mysql_educ'
-créé la fonction auth_mysql_educ_cnt_dist

A partir de là l'autentification fonctionne avec la balise #LOGIN_PUBLIC
sauf que une fois l'autentification réussie le formulaire de login ne
disparait pas.

Le problème se situe dans l'appel à auth_informer_login par
formulaires_login_charger_dist:
if (!$login
  OR !$login = auth_retrouver_login($login, $serveur)
  OR !$row =
sql_fetsel('*','spip_auteurs','login='.sql_quote($login),'','','','',
$serveur)
    )
    return array();

Le code de auth_retrouver_login permet d'utiliser la fonction maison
auth_mysql_educ_retrouver_login mais impossible de passer la 3e condition
qui impose la présence du login dans spip_auteurs.

Je peux sans doute surcharger formulaires_login_charger_dist pour contourner
le problème mais ce serait sans doute plus souple de pouvoir définir une
fonctions auth_{methode}_retrouver_login_dans_spip_auteurs.

Qu'en pensez-vous?

Non.
il *faut* que la personne qui s'identifie ait un compte dans la table spip_auteurs.
Tout la gestion des sessions repose sur ça, tu ne peux donc pas passer à travers cette condition.

La solution est de créer une entrée dans la table spip_auteurs lorsque le visiteur a été reconnu par ta méthode d'authentification.
C'est exactement ce que fait ldap, tu peux t'en inspirer.

Cédric