Plugin Oauth2 : avatar non utilisé

Salut,

Je crée un sujet à partir d’un problème référencé ici Discourse OAuth2 Basic - #304 by nodomain
ici Discourse OAuth2 Basic - #316 by jmlord (c’est moi)
et peut-être ici User avatar not updating on re-log in

Le compte est créé avec succès mais l’avatar n’est pas inclus. Exemple de réponse :

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

La variable oauth2 callback user info paths inclut la valeur avatar:profile.picture et elle est correctement analysée, car elle apparaît dans le log suivant :

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: {}

J’ai vérifié que l’adresse de l’image est correcte, et sa taille est de 300x300. Voici un exemple.

J’ai vérifié les logs du serveur où se trouvent les images, et aucune tentative de téléchargement de cette image n’a été effectuée lors de la création du compte et de la connexion initiale.

Une idée pourquoi cela ne fonctionne pas pour nous ? (clairement, cela fonctionne avec d’autres configurations…)

1 « J'aime »

hmmm, je ne suis pas sûr qu’il soit possible d’obtenir l’avatar

Salut Lillian, merci pour ton aide.

Le post cité semble correspondre au cas où le point de terminaison n’était pas un lien direct vers le fichier. C’est un peu différent ici, où nous fournissons directement le lien du fichier.

De plus, ceci semble fonctionner dans certains cas :

Aussi, l’info-bulle de la propriété oauth2 callback user info paths dit

Chemins dans la réponse du jeton vers d’autres propriétés utilisateur. Les propriétés prises en charge sont name, username, email, email_verified et avatar. Le format est property:path, par exemple : name:params.info.name

Si ce n’est pas par URL, comment faire ? Dois-je l’encoder en base64 dans le fichier ?

Modification : Laissez-moi essayer le processus en 2 étapes, où le résultat de l’avatar de l’image est dans une autre requête, au lieu de la réponse du jeton, et je posterai à nouveau.

Ok, j’ai réussi avec le processus en 2 étapes. Il semble que l’info-bulle soit incorrecte ou qu’il y ait un bug dans cette partie du plugin :

oauth2 callback user info paths : … Les propriétés prises en charge sont name, username, email, email_verified et avatar.

Ce dernier point n’est pas vrai. Pour que les avatars fonctionnent, il faut ajouter un point de terminaison JSON pour les détails de l’utilisateur, cocher « Fetch user JSON for OAuth2 » et remplir la propriété oauth2 json avatar path.

1 « J'aime »