Ich verwende ASP.NET Identity in einem Web API 2 Projekt. Ich habe es zur Zeit und läuft gut mit einem Benutzernamen und Passwort für die Authentifizierung von dem folgenden Beispiel:Hinzufügen eines neuen Grant-Typs in ASP.NET Identity?
grant_type=password&username=alice%40example.com&password=Password1!
Und das funktioniert gut.
Jetzt kann mein Dienst von einer mobilen App aus aufgerufen werden und ich möchte dem Benutzer die Möglichkeit geben, sich mit einem Passwort anmelden zu können. Ich habe zwei zusätzliche Felder (Passcode und Geräte-ID) zur Benutzertabelle hinzugefügt und den UserStore erweitert, um einen Benutzer basierend auf diesen Informationen abrufen zu können.
Meine Frage ist, wie der Benutzer einen Passcode geben kann? Ich brauche sie in der Lage sein, entweder mit Passwort einloggen oder Passwort, so dass ich dachte an dem folgenden für Passcode zu senden:
grant_type=passcode&username=alice%40example.com&passcode=1234&deviceid=abcdef
und je nach grant_type ich entweder dem Benutzerspeicher durch ein Passwort oder Passwort abfragen. Allerdings wirft dies einen Fehler (unsupported_grant_type
) und mit einer schnellen Suche sieht es aus wie diese vordefinierten Werte sind, so kann ich keinen neuen hinzufügen?
Kann ich eine neue grant_type
hinzufügen oder muss ich bei password
bleiben und ein zusätzliches Feld in den Post-Daten haben, die angeben, ob es ein Passcode ist?
Dank