Authentifizieren Sie die native mobile App mithilfe einer REST-API

16

Ich starte bald ein neues Projekt, das auf mobile Anwendungen für alle wichtigen mobilen Plattformen (iOS, Android, Windows) abzielt. Es wird eine Client-Server-Architektur sein.

Die App dient sowohl zur Information als auch zur Transaktion. Für den Transaktionsteil müssen sie ein Konto haben und sich anmelden, bevor eine Transaktion durchgeführt werden kann. Ich bin neu in der mobilen Entwicklung, daher weiß ich nicht, wie der Authentifizierungsteil auf diesen Plattformen ausgeführt wird. Die Clients kommunizieren mit dem Server über eine REST-API. Wird natürlich HTTPS verwenden.

Ich habe noch nicht entschieden, ob sich der Benutzer beim Öffnen der App oder erst beim Ausführen einer Transaktion anmelden soll.

Ich habe folgende Fragen:

1) Wie bei der Facebook-Anwendung geben Sie Ihre Anmeldeinformationen nur ein, wenn Sie die Anwendung zum ersten Mal öffnen. Danach werden Sie bei jedem Öffnen der App automatisch angemeldet. Wie schafft man das? Einfach durch Verschlüsseln und Speichern der Anmeldeinformationen auf dem Gerät und Senden bei jedem Start der App?

2) Muss ich den Benutzer für jede (Transaktions-) Anforderung an die REST-API authentifizieren oder einen tokenbasierten Ansatz verwenden?

Bitte zögern Sie nicht, andere Möglichkeiten für die Authentifizierung vorzuschlagen.

Vielen Dank!

Supercell
quelle

Antworten:

14

Sie übergeben den Benutzernamen / das Kennwort an die Anmeldemethode Ihrer RESTful-API und sie gibt das Zugriffstoken zurück. Dieses Zugriffstoken ist nur eine eindeutige (für das System) Zeichenfolge.

Das Gerät speichert (behält) dieses Zugriffstoken bei. Jedes Mal, wenn Sie eine REST-Anforderung an den Server senden, wird dieses Zugriffstoken im Header der HTTP-Anforderung abgelegt. Server findet den Benutzer per Access-Token und erfüllt bei Erfolg die Anfrage.

Benutzername / Passwort darf nicht auf dem Gerät gespeichert sein.

c-smile
quelle
Ist es Dritten (Hackern usw.) möglich, Zugriff auf den Zugriffstoken zu erhalten?
Supercell
Das ist natürlich möglich. Vor allem, wenn Sie kein HTTPS verwenden. Die meisten Online-E-Mail-Clients bitten Sie, sich von Zeit zu Zeit neu anzumelden. Für das Token ist beispielsweise eine Ablaufzeit von zwei Wochen festgelegt. Also müssen Sie sich alle zwei Wochen neu anmelden.
C-smile
Wie das Zugriffstoken generiert wird und wie das Zugriffstoken auf dem Server gespeichert wird.
Ghyath Serhal
@ c-smile Facebook hat mich nie gebeten, mich erneut anzumelden. Daher sehe ich den Unterschied zwischen einem Kennwort und einem Zugriffstoken nicht wirklich.
Mickael Marrache
Ich weiß, das ist ziemlich spät. Facebook und andere Anbieter stellen jedoch zum Zeitpunkt der Anmeldung ein Aktualisierungstoken, ein Zugriffstoken und eine Ablaufzeit (für das Zugriffstoken) aus. Das Zugriffstoken ist kurzlebig und mithilfe des Aktualisierungstokens kann ein neues Zugriffstoken generiert werden. Bei der nächsten Anmeldung kann ein neues Aktualisierungstoken erstellt werden, wodurch das alte ungültig wird
Cerlin