jmlord
(Jean-Michel Lord)
1
안녕하세요,
여기에서 언급된 문제를 별도의 주제로 분리하려고 합니다. Discourse OAuth2 Basic - #304 by nodomain
여기 Discourse OAuth2 Basic - #316 by jmlord (이건 제 글입니다)
그리고 아마도 여기 User avatar not updating on re-log in
계정은 성공적으로 생성되지만 아바타는 포함되지 않습니다. 응답 예시:
Body: {
"access_token":"...",
"token_type":"bearer",
"expires_in":"3600",
"scope":"profile",
"profile" : {
"id":1234,
"email": "...",
"name": "...",
"picture": "https://somedomain.com/somevalidpicture.jpg"
}
}
변수 oauth2 callback user info paths에는 avatar:profile.picture 값이 포함되어 있으며, 다음 로그에 표시되므로 올바르게 파싱되고 있습니다:
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/..."}
extra: {}
이미지 주소가 올바른지 확인했으며, 크기는 300x300입니다. 여기는 예시입니다.
이미지가 저장되어 있는 서버의 로그를 확인해 보았지만, 계정 생성 및 초기 로그인 동안 해당 이미지를 다운로드하려는 시도가 없었습니다.
우리의 경우 왜 이것이 작동하지 않는지 아이디어가 있으신가요? (분명히 다른 설정에서는 작동하는 것 같지만…)
Lilly
(Lillian )
2
음, 아바타를 가져올 수 있는지 확실하지 않네요.
jmlord
(Jean-Michel Lord)
3
릴리언, 도움을 주셔서 감사합니다.
인용된 게시글은 엔드포인트가 파일에 대한 직접 링크가 아니었던 경우인 것 같습니다. 여기서는 파일 링크를 직접 제공하고 있으므로 상황이 약간 다릅니다.
또한, 어떤 경우에는 다음이 작동하는 것 같습니다:
oauth2 callback user info paths 속성의 툴팁에는 다음과 같이 설명되어 있습니다.
토큰 응답에서 다른 사용자 속성에 대한 경로. 지원되는 속성은 name, username, email, email_verified, avatar입니다. 형식은 property:path이며, 예: name:params.info.name
URL을 통해서는 처리되지 않는다면 어떻게 해야 하나요? 파일 내에서 base64 인코딩을 해야 하나요?
수정: 이미지 아바타 결과가 토큰 응답이 아닌 별도의 쿼리에 있도록 하는 2단계 방식을 시도해 보고, 다시 게시하겠습니다.
jmlord
(Jean-Michel Lord)
4
네, 2단계 프로세스를 통해 작동하게 만들었습니다. 툴팁이 잘못되었거나 플러그인의 해당 부분에 버그가 있는 것 같습니다:
oauth2 callback user info paths : … 지원되는 속성은 name, username, email, email_verified 및 avatar입니다.
후자는 사실이 아닙니다. 아바타가 작동하려면 사용자 세부 정보를 위한 JSON 엔드포인트를 추가하고, "Fetch user JSON for OAuth2"를 선택한 후 oauth2 json avatar path 속성을 채워 넣어야 합니다.