Codeigniter clé d'authentification pour le service REST
Je suis en train d'écrire un simple service RESTful, à l'aide de Phil Esturgeon Reste du Serveur. Je veux protéger mes méthodes à l'aide de la clé API fournie avec cette bibliothèque.
Malheureusement, ce n'est pas très bien documenté et je suis un peu perdu.
Je veux pour authentifier les utilisateurs (email/mot de passe), puis générer une clé auth à envoyer à toutes les autres demandes. Mais il semble que j'ai déjà besoin de la clé auth pour générer un ... Créer un mannequin clé ne semble pas très sécurisé. Désolé si c'est une question stupide, mais ce qui devrait être la meilleure pratique?
source d'informationauteur jose
Vous devez vous connecter pour publier un commentaire.
Si vous êtes familier avec d'autres Api, vous remarquerez un modèle commun. Je recommande une méthode d'authentification lorsque l'utilisateur passe leur adresse de courriel et mot de passe, qui sera de retour une unique généré clé auth. La clé auth serait comme un id de session, pensez à la façon dont les cookies de travail. Ensuite, toutes les autres méthodes de l'API doit vérifier $this->post('auth') et vous avez besoin de comparer avec votre gestionnaire de session (c'est à dire de la base de données, ou des séances), avant de traiter chaque demande.
Semble que beaucoup de code hein? Nope.
Tous vos modèles devraient avoir une surcharge du constructeur:
Puis vous écrire API normalement, comme dans les exemples de la Phil Esturgeon site web.
http://net.tutsplus.com/tutorials/php/working-with-restful-services-in-codeigniter-2/
Faire un modèle qui a authCheck pour vérifier que l'authentification de la clé est valide, et de faire une méthode pour returnFailedResponse retour d'un 401 non autorisé.
Dans un autre contrôleur, permet de l'appeler 'Auth', selon le constructeur.
Maintenant, à chaque appel à votre api doit définir un en-tête pour l'Auth. Ex. 'Auth: 12m34k23b'.