web-dev-qa-db-fra.com

Utiliser Joomla! compte utilisateur pour l'authentification auprès d'une application Laravel

Je recherchais des solutions facilement disponibles pour authentifier un compte d'utilisateur auprès d'une application Laravel) et les seules choses que j'ai rencontrées au sens général de l'authentification sont LDAP, JWT et oAuth. Jusqu'à présent, tout ce que j'ai trouvé était d'utiliser des services externes pour se connecter à l'installation de Joomla!, Plutôt que d'utiliser Joomla comme un serveur.

Hormis essayer de synchroniser les comptes d'utilisateurs (ce qui nécessiterait la réinitialisation de mots de passe pour les utilisateurs novices et risquerait de les écarter), quel serait le meilleur moyen de disposer de Joomla! Existant? les utilisateurs se connectent à une application Laravel?

1
Mark

comme le dit Valentin Despa "J'imagine qu'il pourrait être assez simple de rédiger une solution dans laquelle vous exposez une API RESTful via un composant permettant d'authentifier les utilisateurs."

Une solution non REST consiste à utiliser com_ajax avec un plugin personnalisé https://docs.joomla.org/Using_Joomla_Ajax_Interface

class plgAjaxMyauthentification extends JPlugin
{
    function onAjaxMyauthentification()
    {
    $jinput = JFactory::getApplication()->input;
    $password = $jinput->get('varname', null , 'STRING'); 
    $username = $jinput->get('varname', null, 'STRING');
    $result = JFactory::getApplication()->login(array('username'=>$username,    'password'=>$password));
    return $result;
    }
}

Vous pouvez appeler cette méthode avec cette URL https://mysite.com/index.php?option=com_ajax&plugin=myauthentification&format=json&user=xxxxx&passsword=&&&

Ce code est une preuve de concept. Vous devez renforcer la sécurité en utilisant une connexion HTTPS et un jeton HMAC: http://culttt.com/2014/05/21/create-hmac-sha-authentication-implementation-php/

Votre question est assez brièvement formulée (n'hésitez pas à élaborer) et ne donne pas le contexte exact, mais pour autant que je sache, vous souhaitez gérer vos utilisateurs avec Joomla (pour quelque raison que ce soit) et souhaitez pouvoir vous authentifier.

Joomla n'offre pas d'emblée une API pour pouvoir authentifier les utilisateurs.

J'imagine qu'il pourrait être assez simple de rédiger une solution dans laquelle vous exposez une API RESTful via un composant permettant d'authentifier les utilisateurs.

Bien sûr, les choses peuvent se compliquer dès que vous avez besoin de sauvegarder des choses dans la session ...

1
Valentin Despa