J'ai développé une API PHP très simple basée sur PHP Slim Framework. Il ne fait rien d'autre que de faire des requêtes SQL et de retourner un objet JSON chaque fois que je l'appelle. J'accède à cette API sur un autre site via CURL.Authentification sur un simple service PHP RESTful API
Ma question est: Puisque l'URL de l'API est fondamentalement publique maintenant, quel est le meilleur moyen de la sécuriser? Ma première pensée était HTTP Basic Auth qui serait facile et je pourrais passer à travers les entêtes http. Cependant, je pense que ce n'est pas vraiment sûr tant qu'il n'y a pas de connexion HTTPS (puisque le site passera littéralement le nom d'utilisateur + mot de passe à l'API en texte clair). Aussi, je devrais stocker les informations d'identification dans le code PHP sur mon site Web, ce qui n'est pas vraiment optimal, je pense. La solution suivante que j'ai trouvée est l'authentification par jeton, qui aurait l'avantage de ne pas avoir à autoriser sur chaque requête mais pourrait être plus délicate à implémenter. Aussi je n'ai aucune expérience avec cela encore.
Aussi je lis OAuth/OAuth2 est le chemin à parcourir.
La chose est la suivante: je prévois d'utiliser la même API sur une application mobile bientôt.
Des indices? Merci!
La plupart des gens ne pas utiliser OAuth/OAuth2, mais vous pouvez toujours commencer par écrire votre propre jeton de validation et requièrent le jeton est envoyé avec les en-têtes de l'API. Vous pouvez vérifier son existence et ensuite la valider en conséquence. L'utilisation de jeton auth n'est pas compliquée. Prenez juste un peu de temps et asseyez-vous avec ce que vous décidez de mettre en œuvre. Code lentement jusqu'à ce que vous enveloppez votre tête autour de tout cela. Si vous cherchez à porter sur des applications mobiles, je recommanderais certainement d'utiliser une authentification par jeton. –
Merci beaucoup. Donc OAuth = basé sur un jeton correct? Je suis en train de lire beaucoup de choses à ce sujet et beaucoup de gens le suggèrent aussi. Je pense que je n'ai pas encore tout à fait le mécanisme de la signature d'une demande (par exemple dans l'application) et d'authentifier sur l'api reposant. – Mike
Salut, vous pouvez jeter un oeil à mon exemple d'authentification de jeton Web JSON avec slim3 ici https://github.com/letsila/slim3-jwt-auth-example – Tsilavina