2017-12-02 2 views
0

Ich erstelle eine App, in der Sie sich anmelden/anmelden müssen, um sie zu verwenden. Jetzt implementiere ich einen erholsamen Webservice dafür und ich bin mir nicht sicher, ob ich den richtigen Weg gehe. Mein Workflow ist:Implementieren eines eigenen Anmelde- und Anmeldesystems für Apps

Um sich anzumelden, gibt der Benutzer seine Anmeldeinformationen wie Benutzername, E-Mail-Adresse und Passwort ein. Die App hasht das Passwort und sendet eine Post-Anfrage mit den Zugangsdaten als json an meinen Webservice und der Webservice speichert den neuen Benutzer in der Datenbank.

Um sich am System anzumelden, sendet die App eine Get-Anfrage mit den Parametern Benutzername und Hash des Passworts an den Webservice, vergleicht die Hashwerte und gibt einen entsprechenden Response-Code für Erfolg oder Fehlschlag zurück.

Die Kommunikation zwischen App und Webservice wird von ssl gesichert.

Ist dies der richtige und sichere Workflow eines Anmelde-/Anmeldesystems? Wenn nicht, warum ist es nicht sicher und können Sie einen anderen Workflow empfehlen? Prost.

Antwort

0

Der wichtigste Teil sollte sein, dass Ihr Web-Service nur über https erreichbar ist. Ich nehme an, Sie sprechen über eine mobile App. Die App sollte das Passwort nicht Hash, der Web-Service sollte es tun und dann den Benutzer speichern. Mobile Apps können rückentwickelt werden und dann wissen Sie, wie Sie Ihre Passwörter hashen. Um einen Benutzer in einer erholsamen Weise zu erstellen, wäre also eine POST-Anfrage mit Benutzername, E-Mail und Passwort im Körper zu senden.

Zum Beispiel POST/Benutzer

{ 
     "username": "john-doe", 
     "email": "[email protected]", 
     "password": "some password" 
    } 

Für die Authentifizierung/Autorisierung können Sie OAuth 2 betrachten, aber das nimmt eine Menge Zeit zu implementieren. Eine andere Option wäre eine andere REST-Ressource namens access-tokens. Wann immer Sie sich authentifizieren müssen, führen Sie eine POST/access-tokens-Anfrage durch, um ein Zugriffs-Token zu erstellen.

POST/Access-Token

{ 
     "username": "john-doe", 
     "password": "some password" 
    } 

Antwort

{ 
     "access_token": "9d91c97fc0f98a6311f101246e252ab3230c261c2af", 
     "expries_in": 3600 
    } 

Dann wird die mobile App zu kümmern braucht, dass es immer Token in Kürze einen neuen Zugang zu erstellen, bevor es abläuft . OAuth 2 hat für diesen Zweck auch Aktualisierungstoken, die zusammen mit dem Zugriffstoken geliefert werden. Dann können Sie ein neues Zugriffstoken abrufen, indem Sie das Aktualisierungstoken an den Webdienst senden. Nach der Authentifizierung müssen Sie das Zugriffstoken in den Berechtigungsheader bei jeder Anfrage an den Webdienst einfügen, der eine Authentifizierung benötigt.

Verwandte Themen