Plugin Oauth2: avatar no utilizado

Hola,

Estoy separando en un tema un problema referenciado aquí Discourse OAuth2 Basic - #304 by nodomain
aquí Discourse OAuth2 Basic - #316 by jmlord (ese soy yo)
y quizás aquí User avatar not updating on re-log in

La cuenta se crea correctamente pero el avatar no se incluye. Respuesta de ejemplo:

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 incluye el valor avatar:profile.picture y se analiza correctamente, ya que aparece en el siguiente registro:

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

Comprobé que la dirección de la imagen es correcta y su tamaño es de 300x300. Aquí hay una muestra.

Comprobé los registros del servidor donde se encuentran las imágenes y no hubo ningún intento de descargar esta imagen durante la creación de la cuenta y el inicio de sesión inicial.

¿Alguna idea de por qué esto no funciona para nosotros? (claramente funciona con algunas otras configuraciones…)

1 me gusta

hmmm, no estoy seguro de que sea posible obtener el avatar

Hola Lillian, gracias por tu ayuda.

La publicación citada parece ser el caso en el que el punto final no era un enlace directo al archivo. Es un poco diferente aquí, donde proporcionamos directamente el enlace al archivo.

Además, esto parece funcionar en algunos casos:

Además, la información sobre herramientas de la propiedad oauth2 callback user info paths dice

Rutas en la respuesta del token a otras propiedades del usuario. Las propiedades admitidas son name, username, email, email_verified y avatar. El formato es property:path, por ejemplo: name:params.info.name

Si no es por URL, ¿cómo lo hacemos? ¿Debería codificarlo en base64 en el archivo?

Editar: Déjame intentar el proceso de 2 pasos, donde el resultado del avatar de la imagen está en otra consulta, en lugar de la respuesta del token, y volveré a publicar.

Ok, lo he conseguido con el proceso de 2 pasos. Parece que o la información sobre herramientas es incorrecta o hay un error en esa parte del plugin:

oauth2 callback user info paths : … Las propiedades admitidas son name, username, email, email_verified y avatar.

Esto último no es cierto. Para que los avatares funcionen, es necesario añadir un endpoint JSON para los detalles del usuario, marcar “Fetch user JSON for OAuth2” y rellenar la propiedad oauth2 json avatar path.

1 me gusta