Nous avons actuellement un site Web qui a des fonctionnalités de compte utilisateur, mais nous cherchons à fournir une API pour permettre aux utilisateurs de gérer leurs comptes/effectuer des actions via d'autres appareils/sites Web, en fournissant une API pour les tâches courantes.Comment faire l'authentification dans un service HTTP?
Actuellement la connexion se fait via le site HTTPS pour la sécurité, puis géré à l'aide des sessions PHP avec des mesures de sécurité appropriées pour se prémunir contre le détournement de session, etc.
Comment pourrions-nous fournir cette fonctionnalité dans une API?
Comment est-il possible de soumettre une connexion sans faire un POST? (Comme probablement GET est le seul moyen de le faire via un appel d'API). Est en cours une URL comme: https://www.example.com/login/[email protected]=bar sécurisé? Est-ce que la configuration https se produit avant que l'URL ne soit envoyée sur le réseau?
Si je peux trier cela alors je voudrais que le login retourne un jeton d'accès. La première requête doit inclure ce jeton, et la réponse doit renvoyer un nouveau jeton , à utiliser sur la deuxième requête et ainsi de suite ....
Est-ce que cela fonctionnerait?
... mais cela impliquerait que les «autres sites Web» de Vinsage dans «effectuer des actions via d'autres appareils/sites Web» auraient besoin de connaître les informations d'identification. – Arjan
@Arjan: Si vous demandez si les points de terminaison auront besoin de connaître le mot de passe, alors oui. Si c'est un problème, vous pouvez utiliser un certificat pour la connexion ssl. Ensuite, vous n'avez besoin d'aucune authentification explicite, puisque https fournirait à la fois le cryptage et l'authentification. C'est un peu plus lourd à mettre en place - à la fois pour le serveur et le client. – troelskn
Compte tenu de votre commentaire à ma réponse, je suppose que vous comprenez, mais juste pour être sûr: avec OAuth l'utilisateur autorise une tierce partie (autrement non fiable) à utiliser un service en son nom. Le tiers ne connaîtra pas les informations d'identification de l'utilisateur et l'utilisateur pourra choisir d'accorder une autorisation une seule fois ou de révoquer l'autorisation à tout moment. En effet, tout se résume à savoir si Visage souhaite vraiment accorder à des tiers l'accès à l'API. – Arjan