所以,我想知道这是否有可能实现——鉴于我的社区设置方式,我不希望用户能够解除关联他们的 Discord 或 Steam 社交登录账户。我已经能够调整 Steam 登录(没有人可以解除关联,包括工作人员),因为它是一个外部插件,但我不知道是否有办法修改 Discord 登录,因为它现在已与 Discourse 捆绑在一起。有没有办法将其更改为仅工作人员可见/可用“解除关联社交账户”按钮?只有在极少数情况下,我才希望账户被解除关联,例如用户链接了错误的账户,但为了促进与我的 Discord 的排名同步,如果他们可以自行解除关联,似乎很奇怪。我认为插件在这种情况下不起作用,但我也许是错的——我只是不太清楚如何添加这样的功能。
你可以用 CSS 来隐藏它。我想剥夺他们决定是否与你分享这些凭证的能力,这违反了服务条款,但也许我的想象力太丰富了。
是的,关于服务条款部分说得很有道理,我都没考虑到。我知道在 Discord 上,你总能在那里撤销访问权限。既然你提到了,我得去读一下。我主要是不想让用户解除关联,因为我用他们的 ID 来同步等级和封禁。如果他们能够解除关联,封禁他们就会变得更麻烦,而且可能会让用户在多个 Discord 账户上同步他们的等级。我已经让 Steam 部分在每次登录时同步,所以那没问题。
编辑:是的,我通读了 Discord 的开发者文档,没有发现什么特别引人注意的地方。所以,我认为可以继续进行。不过,用户随时可以通过 Discord 与应用程序断开联系,但我不知道这是否会在 Discourse 上解除关联,或者具体是什么情况。
嗯,经过进一步研究,我认为在不更改 Discourse 或为核心项目添加一些额外设置,或者使用我自己的 Discord social provider(这可能不是理想的,因为已经有一个内置的)的情况下,这是不可能实现的。
我不确定 Discourse 团队是否会支持或添加此功能,但我想我必须为我的用途创建一个外部系统,并且只会使用 Discourse SSO 来关联 Discourse 和其他系统之间的链接。出于我的意图和目的,由于这个限制,我只会使用 Discourse social logins 来登录 Discourse,仅此而已。与其通过用户的 Discourse 配置文件完成所有帐户链接和关联,我认为我只需要使用我已经在使用的上述不同工具来验证通过 OAuth 或类似方式无法实现的事项。
我不会将此标记为解决方案,因为它并不是对我原始问题的直接解决方案,而是对我特定用例的解决方案。
另一种解决方案是将 ID 放入用户自定义字段中,并通过 API 进行更新。或者让插件在用户登录时执行此操作。(我没有仔细阅读整个主题)。
