只允许员工取消关联社交账户?

所以,我想知道这是否有可能实现——鉴于我的社区设置方式,我不希望用户能够解除关联他们的 Discord 或 Steam 社交登录账户。我已经能够调整 Steam 登录(没有人可以解除关联,包括工作人员),因为它是一个外部插件,但我不知道是否有办法修改 Discord 登录,因为它现在已与 Discourse 捆绑在一起。有没有办法将其更改为仅工作人员可见/可用“解除关联社交账户”按钮?只有在极少数情况下,我才希望账户被解除关联,例如用户链接了错误的账户,但为了促进与我的 Discord 的排名同步,如果他们可以自行解除关联,似乎很奇怪。我认为插件在这种情况下不起作用,但我也许是错的——我只是不太清楚如何添加这样的功能。

你可以用 CSS 来隐藏它。我想剥夺他们决定是否与你分享这些凭证的能力,这违反了服务条款,但也许我的想象力太丰富了。

2 个赞

是的,关于服务条款部分说得很有道理,我都没考虑到。我知道在 Discord 上,你总能在那里撤销访问权限。既然你提到了,我得去读一下。我主要是不想让用户解除关联,因为我用他们的 ID 来同步等级和封禁。如果他们能够解除关联,封禁他们就会变得更麻烦,而且可能会让用户在多个 Discord 账户上同步他们的等级。我已经让 Steam 部分在每次登录时同步,所以那没问题。

编辑:是的,我通读了 Discord 的开发者文档,没有发现什么特别引人注意的地方。所以,我认为可以继续进行。不过,用户随时可以通过 Discord 与应用程序断开联系,但我不知道这是否会在 Discourse 上解除关联,或者具体是什么情况。

1 个赞

嗯,经过进一步研究,我认为在不更改 Discourse 或为核心项目添加一些额外设置,或者使用我自己的 Discord social provider(这可能不是理想的,因为已经有一个内置的)的情况下,这是不可能实现的。

我不确定 Discourse 团队是否会支持或添加此功能,但我想我必须为我的用途创建一个外部系统,并且只会使用 Discourse SSO 来关联 Discourse 和其他系统之间的链接。出于我的意图和目的,由于这个限制,我只会使用 Discourse social logins 来登录 Discourse,仅此而已。与其通过用户的 Discourse 配置文件完成所有帐户链接和关联,我认为我只需要使用我已经在使用的上述不同工具来验证通过 OAuth 或类似方式无法实现的事项。

我不会将此标记为解决方案,因为它并不是对我原始问题的直接解决方案,而是对我特定用例的解决方案。

1 个赞

另一种解决方案是将 ID 放入用户自定义字段中,并通过 API 进行更新。或者让插件在用户登录时执行此操作。(我没有仔细阅读整个主题)。

1 个赞