@pfaffman님의 답변을 이해하지 못하겠습니다. 답변이 포함되어 있지 않아요. 해당 주제는 문서화되지 않은 엔드포인트를 찾는 방법을 보여줍니다. 이 엔드포인트는 문서화되어 있으며, 이 특정 API 엔드포인트는 Ember 프론트엔드에서 절대 호출되지 않기 때문에 그렇게 역공학할 수 있는 API 호출 중 아주 극소수에 해당합니다.
@mpemburn님, 동작해야 합니다. 문서가 올바르게 보입니다. 외부 ID는 SSO를 활성화했을 때 전달되는 원격 데이터베이스의 ID입니다. 코드를 공유해 주실 수 있을까요?
아, 실수였습니다. "API 문서가 깨졌는데 어떻게 해야 하나요…"라는 질문에 대한 답은 대부분 제가 링크한 내용입니다. 더 자세히 살펴보니, 외부 ID와 관련된 것은 UX를 통해 접근할 수 없다는 것이 painfully(매우) 분명해집니다. 마크에게는 다행히도 여러분이 더 세심하게 주의를 기울이고 있었네요!
이론 #1: 대부분의 경우(항상 그런 것은 아니지만) 외부 ID는 데이터베이스 ID이므로 숫자 값입니다. 외부 ID가 mark89인지 확인해 보셨나요? SingleSignOnRecord.find_by(external_id: 'mark89')가 데이터베이스 레코드를 반환하나요?
이론 #2: 스테이징 사이트에 SSO가 활성화되어 있지 않은 것 같습니다. SSO는 보통 외부 ID와 함께 사용됩니다. 외부 ID가 존재하는지 확인해 보셨나요?
워드프레스 Discourse 플러그인을 사용하여 동일한 요청을 시도해 보았지만, 그것으로도 작동하지 않습니다. 이메일로 사용자 정보를 가져오는 요청은 정상적으로 작동하는 반면, 이 요청은 작동하지 않네요. 샌드박스 버전의 Discourse(지금까지 테스트에 사용했던 버전)에 문제가 있는 것 같아서 프로덕션 인스턴스에서도 시도해 보았지만, 결과는 동일합니다. 이제 어떻게 해야 할지 모르겠지만, 이 기능이 꼭 정상적으로 작동해야 합니다.
인증 헤더를 잘못된 방식으로 전송하고 있다는 것을 알게 되기 전에 제가 작성했던 두 가지 추측을 확인해 보셨나요?
추측 #1:
대부분의 경우(항상 그런 것은 아니지만) 외부 ID는 데이터베이스 ID이므로 숫자 값입니다. 외부 ID가 mark89인 것이 확실한가요? SingleSignOnRecord.find_by(external_id: 'mark89')가 데이터베이스 레코드를 반환하나요?
추측 #2:
스테이징 사이트에는 SSO가 활성화되어 있지 않은 것 같습니다. SSO는 보통 외부 ID와 함께 사용됩니다. 외부 ID가 존재하는지 확실한가요?
알겠습니다. 샌드박스에는 SSO가 설정되어 있지 않고 프로덕션에는 설정되어 있네요. 프로덕션에서 제 사용자 기록을 확인해 보니, 외부 ID가 설정되어 있었고 실제로 숫자 ID였습니다. 프로덕션 자격 증명과 URI, 그리고 실제 외부 ID로 테스트해 보았지만, 동일한 404 오류가 반환되었습니다.
그리고 SingleSignOnRecord.find_by(external_id: ‘mark89’)를 어떻게 테스트해야 할지 모르겠습니다. 이 기능은 어디에 있나요?