2017-01-26 3 views
1

Ich erstelle in Swift eine iOS-App, die AWS Cognito für die Benutzeranmeldung und -registrierung verwendet. Ich habe festgestellt, dass wenn Benutzer etwas tun, das Cognito nicht erlaubt (Eingabe des falschen Benutzernamens/Passworts bei der Anmeldung, Versuch, ein Passwort zu erstellen, das nicht den Anforderungen entspricht, etc.), zeigt die App Fehlermeldungen wie The operation couldn't be completed. (Com.amazonaws.AWSCognitoIdentityProviderErrorDomain error 0.) an . Ich habe festgestellt, dass verschiedene Aktionen zu unterschiedlichen Fehlercodes führen können, aber ich möchte die Fehlermeldungen beschreibender machen, damit meine Benutzer tatsächlich wissen, was sie falsch gemacht haben.Beschreibende Anmeldefehlermeldungen in der iOS-App mithilfe von AWS Cognito

Derzeit bekomme ich die Fehlermeldung durch Überprüfung der if task.error != nil für die Anmeldung/Registrierung/etc. Aufgabe, und wenn diese Prüfung wahr zurückgibt, bekomme ich die Zeichenfolge task.error!.localizedDescription für die Fehlermeldung. Ich weiß, dass ich den Fehlercode aus dieser Zeichenfolge abrufen könnte, indem ich die Teilzeichenfolge für den 1-stelligen Code erhalte, aber das scheint eine wirklich schreckliche langfristige Lösung zu sein. Zumindest möchte ich den Fehlercode als eine ganze Zahl erhalten oder vorzugsweise eine Beschreibung des Fehlers erhalten, die für den durchschnittlichen Benutzer sinnvoll ist. Gibt es einen Weg, dies zu tun?

+0

Leider sind die Swift-Low-Level-Details etwas weniger verfeinert als einige der anderen SDKs (einschließlich Objective C). So etwas könnte der beste Weg sein. –

Antwort

0

Verwenden Sie die AWSCognitoIdentityProviderErrorType Enum (siehe AWSCognitoIdentityProviderModel.h). Seine rawValues ​​repräsentieren die ErrorCodes in NSErrors mit AWSCognitoIdentityProviderErrorDomain.