web-dev-qa-db-fra.com

Quelles sont les différences entre la stratégie locale de base et la stratégie Digest dans passportjs

Je comprends la différence entre l'authentification Basic et Digest de Passport.js, mais quelle est la différence entre la stratégie locale et Basic ou Digest? Dans les trois, vous entrez un nom d'utilisateur et un mot de passe. La stratégie de base est-elle un type d'authentification d'utilisateur et de mot de passe? Précisez s'il vous plaît.

36

Si je comprends bien, les différences entre les stratégies Local, Basic et Digest dans Passport.js sont subtiles mais importantes. Voici le récapitulatif:

Local ( passeport-local )

La stratégie locale de Passport est un simple schéma d'authentification par nom d'utilisateur et mot de passe. Il trouve le mot de passe d'un utilisateur donné à partir du nom d'utilisateur (ou d'un autre identifiant) et vérifie s'il correspond. La principale différence entre la stratégie locale et les deux autres stratégies est son utilisation de sessions de connexion persistantes. Cette stratégie doit être utilisée sur SSL/TLS.

De base ( passeport-http )

La stratégie de base mise en œuvre par Passport semble presque identique à la stratégie locale, avec une différence subtile. La stratégie de base doit être utilisée avec des points de terminaison API où l'architecture est sans état. Par conséquent, les sessions sont pas obligatoires mais peuvent être utilisées. Cette stratégie devrait également utiliser SSL/TLS. L'indicateur de session peut être défini comme suit:

app.get('/private', passport.authenticate('basic', { session: false }), function(req, res) {
  res.json(req.user);
});

Digest ( passport-http )

La stratégie de résumé est subtilement différente des deux autres stratégies en ce qu'elle utilise un paradigme spécial défi-réponse afin d'éviter d'envoyer le mot de passe en texte clair. Cette stratégie serait une bonne solution lorsque SSL/TLS ne serait pas disponible.

Ceci est un bon article sur Basic vs Digest: Comment authentifier les API

Remarque: Les trois stratégies rendent le support de session facultatif. Les deux stratégies passeport-http vous permettent de définir l'indicateur de session tandis que le passeport docs le dit, en ce qui concerne la stratégie passeport-local:

Notez que l'activation de la prise en charge de session est entièrement facultative, bien qu'elle soit recommandée pour la plupart des applications.

61
Glen Selle

Si vous utilisez la stratégie Passport Local: - une session est établie, vous n'avez donc pas à envoyer de crédits à chaque demande; - le nom d'utilisateur et le mot de passe sont fournis par défaut dans les en-têtes "nom d'utilisateur" et "mot de passe";

Si vous utilisez les stratégies Passport Basic/Digest: - une session n'est pas utilisée, vous devez donc fournir les informations d'identification à chaque appel d'API; - le nom d'utilisateur et le mot de passe/hachage sont contenus dans l'en-tête "Autorisation";

4
Igor Vasilev