2013-02-22 6 views
3

J'essaie d'utiliser l'excellent travail de Phil Sturgeon (Codeigniter RestServer) pour mon service.Phil Sturgeon avec API Key, quelle est la meilleure approche?

Je prévois d'utiliser ce flux de travail:

client --> client connect to my service with credentials 
server <-- check credentials in db, generate api-key for this user, and send it 
client --> send request to get personal infos with new api-key in header 
server <-- retrieve infos for this user from api-key, send infos 
client --> another request with new api-key in header 
server <-- check if api-key lifetime < 15m, if ok execute request and update lifetime else return timeout error 
... 

Tout le monde peut me aider à le faire en utilisant RestServer X-API-KEY, ou je peux juste faire ma propre gestion de l'API-KEY? Merci.

+0

Qu'est-ce exactement Avez-vous besoin d'aide? Où êtes-vous coincé? –

+0

J'ai besoin de savoir si je peux le faire avec l'implémentation RestServer de Phil sturgeon ou si je prévois de faire ma propre gestion de clés (pour la durée de vie). Avec la mise en œuvre de Phil Sturgeon, comment puis-je attribuer une clé à un compte? comment puis-je vérifier la durée de vie de la clé avant que le serveur autorise l'accès? Et mon flux de travail est-il la meilleure solution? Merci. La durée de vie de la clé API est d'empêcher le reniflage du réseau. – doc

Répondre

0

Vous ne devriez pas le faire avec la clé X-API utilisée dans la bibliothèque. L'utilisation de la clé consiste à authentifier les applications que vous avez ajoutées à la liste blanche pour accéder à votre API.

Dans votre cas, vous souhaitez que votre application génère un jeton d'authentification et le renvoie au client. Le client devrait alors utiliser le jeton d'authentification pour faire des demandes. La clé X-API-KEY doit être utilisée pour vérifier que la requête provient d'un «client» en liste blanche. Voici ce que le flux ressemblerait à ceci:

client -> client se connecter à votre service avec des informations d'identification et x-api-clés
serveur < - VERIFIE x-api-clé, vérifier credentials contre db, générer auth jeton pour cet utilisateur, et le renvoie dans une réponse
client -> envoyer la demande obtenir des infos personnelles avec jeton auth
serveur < - vérifie la validité du jeton auth, r EXTRACTION infos pour cet utilisateur et les retours de réponse de client -> une autre demande avec jeton auth
serveur < - vérifier si auth jeton est toujours valide (vérification heure d'expiration, etc.) et le retour réponse

Questions connexes