0

J'ai un api REST (nodejs + express + mongo) qui est consommé par deux types d'utilisateurs:REST API d'authentification pour le client-serveur et serveur-à-serveur

  1. utilisateur final (Authentifié via le site Web, les applications mobiles utilisant google-signin).
  2. Passerelles/services qui consommeront l'API par programmation.

Ma question est de savoir quelle est la meilleure façon de gérer l'authentification pour le deuxième type d'utilisateur? Les utilisateurs sont stockés dans ma base de données (liée à google-signin en utilisant leur email-id)

L'utilisateur final crée des passerelles et des services pour que je puisse fournir une interface pour gérer les informations d'identification pour cela. (Par exemple, si j'utilise Clés de l'API ou paire de clés publique-privée, l'utilisateur peut alors utiliser le site Web pour ajouter/supprimer des informations d'identification pour les passerelles/services). J'utilise la stratégie passeport-google-oauth2 pour gérer l'authentification pour le premier cas. Quelle serait la meilleure façon de gérer l'authentification pour le deuxième type de consommateur?

Répondre

0

Premièrement, OAuth est un protocole d'autorisation, pas un protocole d'authentification. L'authentification Google est effectuée au sein d'une session de connexion Web. Je ne comprends donc pas comment cela fonctionnerait pour vous en conjonction avec un client REST.

Malheureusement, il existe plusieurs façons d'aborder votre problème, en fonction de la quantité de code que vous voulez écrire et du nombre de services existants que vous souhaitez utiliser et de la façon dont vous envisagez de gérer vos utilisateurs.

+0

Je comprends OAuth est un protocole d'autorisation. Je voulais dire que je l'utilise pour authentifier les utilisateurs de mon API de repos. Je suppose que j'aurais dû utiliser le mot google-signin au lieu de googe-oauth. Ma question est sur la façon de faire l'authentification pour mon autre type de consommateurs de repos api qui sont des appareils et des services. Ils utiliseront l'API par programmation. Je gère les utilisateurs dans ma base de données (pour la connexion google, j'utilise emailid pour lier à l'entrée utilisateur de la base de données). J'écris aussi une couche d'autorisation séparée. Donc, s'il y avait une solution existante pour gérer l'authentification, je préférerais l'utiliser. –