Ich arbeite an einer iOS-Anwendung, die mit einer Nodejs-Backend-Server-REST-API kommuniziert, und ich denke über API-Authentifizierung nach.node.js API-Authentifizierung
Ich möchte, dass nur die iOS-Anwendung mit der API kommunizieren kann.
Auf der iOS-Anwendungsseite werden Benutzer durch Facebook-Login authentifiziert. Sie erhalten somit nach der Authentifizierung in der iOS App ein fb access_token und ein fbid.
Für die API-Authentifizierung, plane ich es auf diese Weise zu machen:
- Wenn sich der Benutzer anmeldet in die iOS-App, ein Aufruf an/api/Auth mit seinem fb access_token und FBID getan wird;
- Wenn der Benutzer neu ist, erstelle ich ein zufälliges api_token für diesen Benutzer, speichere es in der Benutzerdatenbank und sende es zurück an die iOS App;
- Wenn der Benutzer bereits in der DB ist, aktualisiere ich das fb access_token in meiner DB und dem api_token und sende es zurück an die iOS App;
- Für jeden API-Aufruf gebe ich das api_token als POST-Parameter und auf der Serverseite überprüfe ich, ob es gültig ist, indem ich in der Datenbank vor dem Ausführen des API-Aufrufs abrufe.
Fehle ich etwas, genug gesichert zu sein?
Jede Rückmeldung oder Verbesserung wird sehr willkommen sein.
Grüße,
EDIT:
- On/api/Auth ich auf FacebookB API (/ me) geprüft, ob die fb access_token noch gültig ist:
Eine weitere Möglichkeit, die folgende wäre ;