PUT /u/{username}.json 요청이 이메일을 변경하지 않음

Discourse API 문서(Discourse API Docs)에 따르면, 해당 엔드포인트를 통해 이메일을 변경할 수 있어야 합니다.

  1. 이 API 엔드포인트를 사용하세요: PUT /u/{username}.json
  2. 이 요청 본문을 사용하세요:
{
    "Name": "Test Name",
    "Email": "test@test.com"
}
  1. 200 OK를 받았습니다. 이름은 변경되지만, 이메일은 변경되지 않습니다.

응답에는 “email” 필드가 포함되어 있지 않습니다.

1개의 좋아요

Discourse API를 역공학하여 어떤 API 호출을 사용해야 하는지 확인해 보시는 것을 추천합니다.

2개의 좋아요

xbd님,

문서에 따르면 이메일 변경은 이 엔드포인트를 사용합니다: /u/{username}/preferences/email.json: https://docs.discourse.org/#tag/Users/operation/updateEmail

다만, 사용자의 수동 승인을 위해 해당 이메일 주소로 확인 링크가 전송됩니다. 승인될 때까지 이메일은 변경되지 않습니다.

5개의 좋아요

도움을 주셔서 감사합니다. 문서에서 PUT /u/{username.json}의 email 속성을 제거하는 것이 도움이 될 수 있습니다. 디버깅에 소요되는 시간을 절약할 수 있을 것입니다 ;-).

확인 메일에 관한 부분입니다: 다른 주제에서 이에 대해 읽었습니다. 의도를 잘 모르겠습니다. 혹시 모를 경우를 대비해 말씀드리자면, Discourse는 이 프로젝트에서 여러 애플리케이션 중 하나이며, 사용자 인증은 자체 제작된 인증 서버(제 경우와 같이)에서 처리됩니다. 인증 서버가 이메일 확인을 담당합니다. 애플리케이션은 단순히 인증 서버가 지시하는 대로 하면 됩니다. 이것이 제 생각에 정상적인 방식입니다. 그렇지 않으면 여러 개의 확인 메일, 서로 다른 데이터셋 등의 문제가 생길 수 있습니다.

2개의 좋아요

이 문제를 제기해 주셔서 감사합니다. 정말 이상하네요. 과거의 잔재일 수도 있습니다. 관련 정보를 확인한 후 필요하면 문서를 업데이트하겠습니다. :+1:

2개의 좋아요

auth overrides email 관리자 설정이 이 문제에 도움이 됩니까?

4개의 좋아요

그렇다면 이메일 주소가 검증되었음을 Discourse에 알리도록 설정하고, API가 아니라 인증 서버에서 이메일을 업데이트하도록 구성해야 합니다.

2개의 좋아요

이 문제를 지적해 주셔서 다시 한번 감사드립니다. 디버깅에 시간을 낭비하게 해서 죄송합니다. API 문서가 업데이트되었습니다.

3개의 좋아요