3.3. User Interaction (Benutzerinteraktion)
Nach Erhalt einer erfolgreichen Autorisierungsantwort zeigt der Client dem Endbenutzer den "user_code" und den "verification_uri" an oder kommuniziert sie auf andere Weise und weist ihn an, den URI in einem Benutzeragenten auf einem sekundären Gerät (z.B. in einem Browser auf seinem Mobiltelefon) zu besuchen und den Benutzercode einzugeben.
+-----------------------------------------------+
| |
| Verwenden Sie einen Browser auf einem |
| anderen Gerät, besuchen Sie: |
| https://example.com/device |
| |
| Und geben Sie den Code ein: |
| WDJB-MJHT |
| |
+-----------------------------------------------+
Abbildung 2: Beispiel für Benutzeranweisungen
Der autorisierende Benutzer navigiert zum "verification_uri" und authentifiziert sich beim Autorisierungsserver in einer sicheren TLS-geschützten [RFC8446] Sitzung. Der Autorisierungsserver fordert den Endbenutzer auf, die Geräteautorisierungssitzung zu identifizieren, indem er den vom Client bereitgestellten "user_code" eingibt. Der Autorisierungsserver sollte den Benutzer dann über die Aktion informieren, die er unternimmt, und ihn auffordern, die Anfrage zu genehmigen oder abzulehnen. Sobald die Benutzerinteraktion abgeschlossen ist, weist der Server den Benutzer an, zu seinem Gerät zurückzukehren.
Während der Benutzerinteraktion fragt das Gerät kontinuierlich den Token-Endpunkt mit dem "device_code" ab, wie in Abschnitt 3.4 beschrieben, bis der Benutzer die Interaktion abschließt, der Code abläuft oder ein anderer Fehler auftritt. Der "device_code" ist nicht direkt für den Endbenutzer bestimmt; daher sollte er während der Interaktion nicht angezeigt werden, um den Endbenutzer nicht zu verwirren.
Autorisierungsserver, die diese Spezifikation unterstützen, MÜSSEN eine Benutzerinteraktionssequenz implementieren, die damit beginnt, dass der Benutzer zum "verification_uri" navigiert und in einer Phase der Interaktion den "user_code" bereitstellt. Abgesehen davon liegt die genaue Abfolge und Implementierung der Benutzerinteraktion beim Autorisierungsserver; zum Beispiel kann der Autorisierungsserver neuen Benutzern ermöglichen, sich während des Autorisierungsablaufs für ein Konto anzumelden, oder zusätzliche Sicherheitsüberprüfungsschritte hinzufügen.
Es wird NICHT EMPFOHLEN, dass Autorisierungsserver den Benutzercode ("user_code") im Verifizierungs-URI ("verification_uri") einschließen, da dies die Länge und Komplexität des URI erhöht, den der Benutzer eingeben muss. Während der Benutzer mit dem getrennten "user_code" immer noch eine ähnliche Anzahl von Zeichen eingeben muss, können Fehler bei der Eingabe des Codes vom Autorisierungsserver hervorgehoben werden, um die Benutzererfahrung zu verbessern, sobald er erfolgreich zum "verification_uri" navigiert hat. Der nächste Abschnitt dokumentiert die Benutzerinteraktion mit "verification_uri_complete", das beide Informationen übertragen soll.