Ich bin ein wenig verwirrt darüber, wie Benutzer mit meiner REST-API richtig und sicher authentifiziert werden können, und sie bietet auch die Option zur Authentifizierung mit anderen OAuth 2.0-Anbietern (z. B. Facebook, Google usw.).
Szenario
Benutzer interagieren mit einer Webanwendung, die meine REST-API verwenden soll. Benutzer sollten sich anmelden und CRUD-Vorgänge sowohl mit Benutzernamen / Passwort als auch mit Drittanbieterdiensten wie Facebook durchführen können. Ich werde SSL verwenden, um den Datenverkehr zur Website und zur API zu verschlüsseln.
Ohne die Login-Dienste von Drittanbietern in Betracht zu ziehen und die verschiedenen Fragen zu studieren, die bereits hier auf SO gestellt wurden, dachte ich darüber nach, die Benutzerauthentifizierung wie auf dem Bild zu behandeln.
Technologien und aktuelle Idee
Die REST-API wird mithilfe von JS mit NodeJS und Express geschrieben. Die WebApp, die von einer anderen NodeJS-Instanz bereitgestellt wird, ist meist AngularJS mit Vorlagen, die die REST-API verwenden.
Meine derzeitige Idee ist, dass die WebApp die Login-Sequenz handhaben soll und Facebook seinen Token mit dem Callback in meiner Datenbank speichern kann. Aber diese Lösung riecht zu sehr nach Workaround!
Fragen
Referenzen
Anmelden mit facebook und mit oauth 2.0 zur Authentifizierung von REST API-Anrufen
Und viele andere hier auf SO:)
Meine 2 Cent ..
Verwenden Sie PassportJS. Es hat Unterstützung für OAuth-Flows und unterstützt viele 3rd-Party-Integrationen wie FB, Twitter, Github etc. und seit seiner Nodejs Middleware .. seine Integration wird sehr eng in Ihrer Anwendung ..
Tags und Links authentication rest node.js oauth-2.0 passport.js