根据 Discourse API 文档(Discourse API Docs),应该可以通过引用的端点更改电子邮件。
- 使用此 API 端点:PUT /u/{username}.json
- 使用此请求正文:
{
"Name": "Test Name",
"Email": "test@test.com"
}
- 收到 200 OK。名称会更改,电子邮件不会。
响应不包含“email”字段。
根据 Discourse API 文档(Discourse API Docs),应该可以通过引用的端点更改电子邮件。
{
"Name": "Test Name",
"Email": "test@test.com"
}
响应不包含“email”字段。
我建议你逆向工程 Discourse API,看看使用哪个 API 调用。
您好 xbd,
根据文档,更改电子邮件使用此端点:/u/{username}/preferences/email.json:\u003chttps://docs.discourse.org/#tag/Users/operation/updateEmail\u003e
但是,这会向要更改的电子邮件地址发送一个确认链接,需要用户手动批准。在此之前,电子邮件将不会更改。
感谢您的协助。也许在文档中从 PUT /u/{username.json} 中移除 email 属性会有所帮助。这可以节省调试时间 ;-).
关于确认邮件的事情:我在另一个主题上读到过。我不明白它的意义。以防万一,Discourse 是项目中的众多应用程序之一,用户身份验证由定制的身份验证服务器处理(就像我的情况一样)。身份验证服务器处理电子邮件确认。应用程序应该只做身份验证服务器说的事情。在我看来,这是正常的方式。否则,就会出现多封确认邮件、不同的数据集……
感谢您提出这个问题。这确实很奇怪。它可能是过去遗留下来的。我会收集一些信息,并在需要时更新文档。![]()
auth overrides email(身份验证覆盖电子邮件)管理员设置对此有帮助吗?
那么,您需要对其进行配置,告知 Discourse 电子邮件地址已验证,并且不要在 API 上更新电子邮件,而是在您的认证服务器上更新。
再次感谢您提出这个问题,也很抱歉浪费了您的调试时间。API 文档已更新。