Plugin Oauth2: avatar não utilizado

Olá,

Estou separando em um tópico um problema referenciado aqui Discourse OAuth2 Basic - #304 by nodomain
aqui Discourse OAuth2 Basic - #316 by jmlord (que sou eu)
e talvez aqui User avatar not updating on re-log in

A conta é criada com sucesso, mas o avatar não é incluído. Exemplo de resposta:

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

A variável oauth2 callback user info paths inclui o valor avatar:profile.picture e ela é analisada corretamente, pois aparece no seguinte log:

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

Verifiquei que o endereço da imagem está correto e seu tamanho é 300x300. Aqui está uma amostra.

Verifiquei os logs do servidor onde as imagens estão localizadas e não houve tentativa de download desta imagem durante a criação da conta e o login inicial.

Alguma ideia de por que isso não funciona para nós? (Claramente funciona com algumas outras configurações…)

1 curtida

hmmm, não tenho certeza se é possível obter o avatar

Oi Lillian, obrigado pela ajuda.

A postagem citada parece ser o caso em que o endpoint não era um link direto para o arquivo. É um pouco diferente aqui, onde fornecemos diretamente o link do arquivo.

Além disso, isso parece funcionar em alguns casos:

Além disso, a dica da propriedade oauth2 callback user info paths diz

Caminhos na resposta do token para outras propriedades do usuário. As propriedades suportadas são name, username, email, email_verified e avatar. O formato é property:path, por exemplo: name:params.info.name

Se não for por URL, como fazemos? Devo codificar em base64 no arquivo?

Editar: Deixe-me tentar o processo de 2 etapas, onde o resultado do avatar da imagem está em outra consulta, em vez da resposta do token, e postarei novamente.

Ok, consegui fazer funcionar com o processo de 2 etapas. Parece que ou a dica está errada ou há um bug nessa parte do plugin:

oauth2 callback user info paths: … As propriedades suportadas são name, username, email, email_verified e avatar.

O último não é verdade. Para que os avatares funcionem, é preciso adicionar um endpoint json para detalhes do usuário, marcar “Fetch user JSON for OAuth2” e preencher a propriedade oauth2 json avatar path.

1 curtida