出于某种我无法理解的原因,Discourse 不允许用户连接或管理已连接的外部账户(例如关联的 Discord 账户)。Discourse 的代码似乎使用以下逻辑来判断用户是否可以更新其关联账户:
canUpdateAssociatedAccounts(
secondFactorEnabled,
canCheckEmails,
isAnonymous
) {
if (secondFactorEnabled || !canCheckEmails || isAnonymous) {
return false;
}
return findAll().length > 0;
}
为什么 secondFactorEnabled 会被作为此处考虑的一个变量?
我的用户感到非常困惑,因为他们陷入了一种奇怪的境地。他们在我们的网站上注册了账户,为了访问我们的 Discord 服务器而将账户与 Discord 账户关联,随后在账户上启用了双因素认证(2FA)。但启用后,他们的账户页面上整个「关联账户」部分竟然消失了!只要启用了 2FA,他们就无法查看或管理其关联账户。
还有另一位用户也非常困惑,因为他们创建账户并启用了 2FA 后,无法按照我们的说明添加关联账户,因为「关联账户」部分从一开始就没有显示出来。
与没有遇到该问题的其他用户相比,这两位用户唯一的共同点就是他们都启用了 2FA。
我希望为用户提供这样的选项:既能在论坛账户上启用 2FA,又能将其账户与 Discord 账户关联。
我将此问题归类在 Support 类别下,但我不确定这是否实际上属于 #contribute:bug。无论如何,似乎除非对 Discourse 进行代码修改,否则没有可行的变通方案。