Zum Hauptinhalt springen

PIN-basierte Autorisierung

Der PIN-basierte OAuth-Flow ist eine Variante des 3-legged OAuth-Prozesses und richtet sich an Anwendungen, die keinen Webbrowser einbetten oder aufrufen können, um Benutzer nach der Autorisierung weiterzuleiten. Beispiele sind Befehlszeilenanwendungen, eingebettete Systeme, Spielkonsolen und bestimmte Arten mobiler Apps. Der PIN-basierte OAuth-Flow wird von einer App initiiert, indem im request_token der oauth_callback auf oob gesetzt wird. Der Begriff oob steht für Out-of-Band-OAuth. Nutzer besuchen weiterhin X, um sich anzumelden oder die App zu autorisieren, werden jedoch nach der Freigabe des Zugriffs nicht automatisch zur Anwendung zurückgeleitet. Stattdessen wird ein numerischer PIN-Code angezeigt, zusammen mit Anweisungen, zur Anwendung zurückzukehren und diesen Wert einzugeben.
Hinweis: Die callback_url in den X App-Einstellungen ist weiterhin erforderlich, selbst bei Verwendung der PIN-basierten Authentifizierung.
 

Implementierung des PIN-basierten OAuth-Flows

Der PIN-basierte Flow wird auf die gleiche Weise implementiert wie die 3-legged-Authentifizierung (und Mit X anmelden), mit den folgenden Unterschieden:
  1. Der Wert für oauth_callback muss während des Aufrufs von POST oauth/request_token auf oob gesetzt werden.
  2. Nachdem der Nutzer zu X geleitet wurde, um Ihre App entweder über GET oauth/authenticate oder GET oauth/authorize zu autorisieren, wird er nicht zu Ihrer callback_url zurückgeleitet. Stattdessen sieht er eine Seite mit einer von X generierten, etwa 7-stelligen PIN sowie Anweisungen, diese PIN in Ihrer Anwendung einzugeben.
  3. Der Nutzer gibt diese PIN in Ihrer Anwendung ein, und Ihre Anwendung verwendet die PIN als oauth_verifier in POST oauth/access_token, um ein access_token zu erhalten.
Hinweis: PINs sind nicht wiederverwendbar, und das erhaltene access_token sollte für anwendungsseitige Anfragen im Namen des Nutzers verwendet werden.
I