Oauth2 plugin: Avatar nicht verwendet

Hallo,

ich erstelle ein neues Thema, das sich auf ein Problem bezieht, das hier Discourse OAuth2 Basic - #304 by nodomain
hier Discourse OAuth2 Basic - #316 by jmlord (das bin ich)
und vielleicht hier User avatar not updating on re-log in
bezogen wird.

Das Konto wird erfolgreich erstellt, aber der Avatar wird nicht mitübernommen. Beispielantwort:

Body: {
  "access_token":"...",
  "token_type":"bearer",
  "expires_in":"3600",
  "scope":"profile",
  "profile" : {
    "id":1234,
    "email": "...",
    "name": "...",
    "picture": "https://somedomain.com/somevalidpicture.jpg"
  }
}

Die Variable oauth2 callback user info paths enthält den Wert avatar:profile.picture und wird korrekt geparst, da sie im folgenden Log erscheint:

OAuth2 Debugging: after_authenticate response:

creds: {"token"=>"...", "expires_at"=>1702053692, "expires"=>true}
uid: 1234
info: {"email"=>"...", "name"=>"...", "avatar"=>"https://members.geobon.org/pages/profile-picture/62146-17077.jpg"}
extra: {}

Ich habe überprüft, dass die Bildadresse korrekt ist und die Größe 300x300 beträgt. Hier ist ein Beispiel.

Ich habe die Logs des Servers, auf dem die Bilder liegen, überprüft und es gab keinen Versuch, dieses Bild während der Kontoerstellung und des ersten Logins herunterzuladen.

Haben Sie eine Idee, warum das bei uns nicht funktioniert? (Offensichtlich funktioniert es mit anderen Konfigurationen…)

1 „Gefällt mir“

hmmm, ich bin mir nicht sicher, ob es möglich ist, den Avatar zu bekommen

Hallo Lillian, danke für deine Hilfe.

Der zitierte Beitrag scheint in dem Fall zu sein, in dem der Endpunkt kein direkter Link zur Datei war. Hier ist es etwas anders, da wir direkt den Dateilink bereitstellen.

Außerdem scheint dies in einigen Fällen zu funktionieren:

Auch die Tooltip-Eigenschaft oauth2 callback user info paths besagt:

Pfade in der Token-Antwort zu anderen Benutzereigenschaften. Unterstützte Eigenschaften sind name, username, email, email_verified und avatar. Das Format ist Eigenschaft:Pfad, z. B. name:params.info.name

Wenn nicht per URL, wie machen wir das? Soll ich es im Base64-Format in die Datei kodieren?

Bearbeiten: Ich werde den 2-Schritte-Prozess ausprobieren, bei dem das Ergebnis des Bildavatars in einer anderen Abfrage und nicht in der Token-Antwort steht, und werde mich dann wieder melden.

Ok, ich habe es mit dem 2-Schritte-Prozess zum Laufen gebracht. Es scheint, dass entweder der Tooltip falsch ist oder dass es einen Fehler in diesem Teil des Plugins gibt:

oauth2 callback user info paths: … Unterstützte Eigenschaften sind name, username, email, email_verified und avatar.

Letzteres stimmt nicht. Damit Avatare funktionieren, muss man einen JSON-Endpunkt für Benutzerdetails hinzufügen, “Fetch user JSON for OAuth2” aktivieren und die Eigenschaft oauth2 json avatar path ausfüllen.

1 „Gefällt mir“