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:\u003chttps://docs.discourse.org/#tag/Users/operation/updateEmail\u003e

但是,这会向要更改的电子邮件地址发送一个确认链接,需要用户手动批准。在此之前,电子邮件将不会更改。

5 个赞

感谢您的协助。也许在文档中从 PUT /u/{username.json} 中移除 email 属性会有所帮助。这可以节省调试时间 ;-).

关于确认邮件的事情:我在另一个主题上读到过。我不明白它的意义。以防万一,Discourse 是项目中的众多应用程序之一,用户身份验证由定制的身份验证服务器处理(就像我的情况一样)。身份验证服务器处理电子邮件确认。应用程序应该只做身份验证服务器说的事情。在我看来,这是正常的方式。否则,就会出现多封确认邮件、不同的数据集……

2 个赞

感谢您提出这个问题。这确实很奇怪。它可能是过去遗留下来的。我会收集一些信息,并在需要时更新文档。:+1:

2 个赞

auth overrides email(身份验证覆盖电子邮件)管理员设置对此有帮助吗?

4 个赞

那么,您需要对其进行配置,告知 Discourse 电子邮件地址已验证,并且不要在 API 上更新电子邮件,而是在您的认证服务器上更新。

2 个赞

再次感谢您提出这个问题,也很抱歉浪费了您的调试时间。API 文档已更新。

3 个赞