web-dev-qa-db-fra.com

Connectez-vous automatiquement de l'application mobile au site Web sans avoir à réinsérer les informations d'identification.

L'application mobile a été conçue par moi-même (facile à manipuler). Cependant, le site Web a été conçu par un développeur externalisé (Joomla) et il n'est plus disponible. Ce que j'ai besoin d'ajouter, c'est de lier le site Web à l'application mobile de sorte que l'utilisateur puisse accéder au site Web depuis l'application mobile (et non l'inverse) sans être invité à insérer à nouveau le nom d'utilisateur et le mot de passe.

Les applications et les sites Web liés à différentes bases de données ont toutefois des noms d'utilisateur et des mots de passe identiques pour chaque utilisateur. Je peux stocker les informations d'identification dans le stockage de variables local et les transmettre au site Web pour les valider, puis (d'une manière ou d'une autre sur le backend) permettre à l'utilisateur de naviguer directement vers sa page d'accueil sur le site Web sans passer par la page de connexion. Ce que je comprends, c’est que le site Web utilise la connexion par défaut Joomla. Mais comme je suis totalement nouveau dans Joomla, je ne sais pas par où commencer ni où se passe réellement le processus de connexion et s’il est possible de le modifier.

L'exigence de sécurité du système est très faible et je suis libre de contourner toute complication tant que l'utilisateur peut voir son profil sur le site Web et non le profil de quelqu'un d'autre.

J'ai vérifié les discussions suivantes:
Connexion Facebook - Dites à joomla de se connecter
Quelle est l'URL de connexion de l'utilisateur (comment masquer le formulaire de connexion?)
Connexion d'un utilisateur sans obtenir le mot de passe de ce dernier
Joomla Single Sign On (SSO) avec un autre système

Et le premier, est-ce possible en utilisant le login par défaut de joomla ou vous recommandons d'utiliser d'autres plugins plus faciles (spécialement pour les utilisateurs débutants de Joomla).

Si la connexion par défaut est recommandée, quelle est la logique de l’utiliser? (comment envoyer les informations d'identification à joomla et comment joomla va les recevoir et naviguer directement vers la page d'accueil de l'utilisateur)

Si les connexions par défaut ne sont pas recommandées, quels plug-ins, que vous recommandez d'utiliser, qui nécessitent une manipulation minimale (je suis très débutant dans Joomla) et quelle est la logique à suivre?

Remarque le nom d'utilisateur et le mot de passe sont NON cryptés , et la sécurité n'est pas important ici.

2
Hawk

Quelques réflexions/options:

1) Étant donné que les bases de données distinctes partagent les mêmes informations d'identification d'utilisateur, il serait peut-être préférable de créer un plug-in d'authentification pour votre site Web, qui s'authentifie auprès de la base de données de votre application mobile. De cette façon, lorsqu'un utilisateur se connecte à l'application mobile, il dispose déjà d'une session transportable.

2) Joomla core est livré avec d’autres options d’authentification et il en existe de nombreuses disponibles via le répertoire des extensions. Vous pouvez utiliser Gmail, LDAP, les cookies (principaux) ou trouver une offre plus robuste proposée par un développeur tiers pour une authentification Facebook, OAuth2 ou à deux facteurs. L'idée étant de résumer l'authentification auprès d'un service tiers, gérez les sessions pour lesquelles votre application mobile et votre site Web possèdent des clés d'accès.

3) Créez un point de terminaison public auquel vous pouvez exécuter un RPC depuis l’application mobile vers Joomla. Il y a un bon article (lien ci-dessous) sur le faire. Vous pouvez authentifier la publication à l'aide du jeton de session de l'application mobile, en demandant à Joomla d'interroger la base de données mobile pour vérifier si elle est légitime, puis le contenu requis par le serveur.

réponse JSON avec JResponse - Joomla CMS

En fin de compte, ma réponse serait de migrer vers une seule autorité d’authentification; Joomla, votre base de données mobile ou un service tiers. Dans le cas contraire, la suggestion trois serait votre prochain meilleur pari, à condition de ne pas envoyer les informations d'identification de l'utilisateur en texte brut.

Je dois toutefois contester votre phrase de clôture! :)

Notice the username and the password are NOT encrypted, and security is not important here.

La sécurité est toujours importante, quelles que soient les perceptions personnelles. Avec cette hypothèse, vous exposez votre base d'utilisateurs à des risques inutiles. Par exemple, une erreur humaine souvent exploitée est la propension de tout le monde à utiliser le même mot de passe ou les deux mêmes mots de passe pour tout. Cela signifie qu'une fois qu'un système a été exploité, les pirates informatiques vont se retourner et tenter d'utiliser les mêmes informations d'identification dans d'autres services Web pour une grande variété d'activités néfastes. aucun de ceux qui finissent bien pour les victimes. De plus, vous vous exposez, ainsi que votre matériel, à des risques inutiles. Vous pourriez vous réveiller un jour pour trouver votre site Web en train de vendre du viagra, ou obtenir une facture insensée pour cause d’utilisation, car votre serveur a été piraté et fait office de proxy.

Bonne chance

2
Brian Bolli

Je suggère de créer votre propre API car ce sera plus facile pour vous, ou si vous avez des problèmes avec l'API, vous pouvez également vérifier ce plugin https://techjoomla.com/rest-api-for-joomla

1
user196