web-dev-qa-db-fra.com

Passport-js Comment créer une stratégie personnalisée

Je cherche à créer ma propre stratégie.

J'ai client_id, client_secret et les métadonnées associées. Je connais également le flux d'exécution. Je veux donc créer ma propre stratégie et ajouter ma logique personnalisée pour l'authentification.

J'ai regardé passeport-stratégie , mais je ne comprends pas comment mettre en œuvre ma propre stratégie. Quelqu'un peut-il l'expliquer?

15
Sam

Vous avez deux options ici:

Si vous avez une logique d'authentification personnalisée, vous n'avez pas vraiment besoin de créer votre propre stratégie ... vous pouvez utiliser la stratégie passport-custom qui vous permet de construire cette logique. Selon la documentation:

La stratégie d'authentification personnalisée authentifie les utilisateurs par la logique personnalisée de votre choix

À moins que vous ne vouliez réellement construire une stratégie que vous souhaitez distribuer (par exemple: une implémentation d'OpenID ou quelque chose comme ça), je ne vois pas l'intérêt d'implémenter votre propre stratégie.

Cependant, implémenter votre propre stratégie consiste à implémenter la classe abstraite de stratégie de passeport. Je suggère de regarder la page Github au lieu de la page npm car elle contient plus d'informations sur la façon de démarrer et de fonctionner. Fondamentalement, les étapes à suivre pour avoir votre propre stratégie sont les suivantes:

  1. Stratégie de sous-classe
  2. Implémentez l'authentification en définissant la méthode authenticate () sur le prototype (ici vous aurez votre logique personnalisée).
  3. Appelez l'une des méthodes augmentées (.success, .fail, .pass, .redirect ou .error)

Enfin, vous auriez besoin de l'emballer en tant que module npm et une fois que vous avez tout en place, vous pouvez aller et exiger votre propre stratégie dans votre projet Node.js.

Comme je l'ai dit, je pense que vous devez avoir une bonne raison de choisir votre propre stratégie. J'essaierais le passeport-personnalisé .

16
javierfdezg