Comment mettre en œuvre une sécurité API REST avec node.js

J'ai commencer la planification d'une API REST avec node.js ,d'exprimer et de mongodb. L'API fournit des données pour un site web (public et privé) et peut-être plus tard d'une application mobile. L'interface sera développé avec AngularJS.

Pour quelques jours, j'ai lu beaucoup de choses sur la sécurisation des Api REST, mais je ne suis pas une solution définitive. Aussi loin que je comprends, c'est d'utiliser le protocole HTTPS pour fournir une sécurité de base. Mais comment je peux protéger l'API dans ce cas d'utilisation:

  • Seuls les visiteurs/utilisateurs du site/app sont autorisés à obtenir des données pour la partie publique du site web/app

  • Seuls les utilisateurs authentifiés et autorisés sont autorisés à obtenir des données pour le secteur privé (et seulement les données, où l'utilisateur des autorisations)

Au moment où j'y pense pour autoriser uniquement les utilisateurs avec une session active de l'utilisation de l'API. Pour autoriser les utilisateurs, je vais utiliser le passeport et l'autorisation j'ai besoin de mettre en place quelque chose pour moi. Tous les sur le dessus de HTTPS.

Quelqu'un peut-il fournir un certain nombre de meilleures pratiques ou expériences? Est-il d'un manque dans mon “architecture”?

  • J'imagine que l'API ne doit être utilisé qu'à partir de l'interface que vous fournissez? Dans ce cas, l'utilisation de la session pour s'assurer que l'utilisateur est valide semble être une bonne solution. Pour les autorisations, vous pouvez prendre un coup d'oeil à node-rôles.
  • Qu'avez-vous enfin faire pour cela? Toute chaudière plaque de code (serveur/de l'application mobile du client) vous pouvez partager?
InformationsquelleAutor tschiela | 2013-03-19