¿Conectando a una fuente externa de avatares?

Ya conozco los gravatars y los avatares de sistemas externos, pero ¿sería posible asignar el avatar de un usuario a otra imagen externa? En mi caso, el usuario no debería poder cambiar su avatar; en su lugar, este estaría determinado por otro sistema que especifica cuál debe ser.

En parte de este “sistema”, puedo hacer una solicitud PUT para actualizar el avatar de un usuario, por ejemplo:

$.ajax({
    url: 'https://example.com/site/selectable-avatars.json',
    type: 'GET',
    success: function(data) {
        const payload = {
            url: data[1] // Por ahora codificado de forma estática. Se asignará más tarde según algunos datos
        }
        $.ajax({
            url: 'https://example.com/u/' + username + '/preferences/avatar/select',
            type: 'PUT',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json',
                'Api-Key': 'my-api-key',
                'Api-Username': 'my-api-username'
             },
             data: JSON.stringify(payload),
             success: function(data, textStatus) {
                 console.log(data, textStatus);
             }
        })
     }
  })

Esto funciona perfectamente, asignando la imagen del avatar a la imagen pasada, que en este caso está codificada de forma estática como data[1]. El data es un array de imágenes configurado en Discourse como “avatares seleccionables”.

El problema es que la URL de la imagen en realidad se construye como https://example.com/${url} en lugar de simplemente url.

Supongo que la cuestión es: ¿sería posible establecer el archivo del avatar como una imagen externa (de otro dominio) en lugar de una interna? ¿O existe una mejor manera de hacer lo que estoy intentando?

Gracias por su tiempo.

Puedes lograr esto de manera compatible utilizando Inicio de sesión único oficial para Discourse (sso) y la configuración relacionada.