我正在构建一个社区门户,将使用 OAuth2 来链接提供商和 Discourse。我希望仅当邮箱被邀请加入社区时才允许通过邮箱登录(因此不应显示注册按钮),但希望允许所有 OAuth2 登录。
我似乎无法在 OAuth2/登录设置中实现这一点。这可行吗?本质上,我希望覆盖 OAuth2 的注册设置。
我正在构建一个社区门户,将使用 OAuth2 来链接提供商和 Discourse。我希望仅当邮箱被邀请加入社区时才允许通过邮箱登录(因此不应显示注册按钮),但希望允许所有 OAuth2 登录。
我似乎无法在 OAuth2/登录设置中实现这一点。这可行吗?本质上,我希望覆盖 OAuth2 的注册设置。
我认为你只需开启“仅邀请注册”选项。你已经这样做了但效果不符合预期吗?
那么,直接启用它们即可?
你具体做了哪些操作?哪些结果与你的预期不符?
如果未收到邀请的人尝试登录,你希望发生什么?
哦!你的意思是,如果有人尝试点击邀请链接,他们会看到这样的内容吗?
你只想允许被邀请的人加入。你希望这些人必须使用 Clove 登录。对吗?从你的示例来看,似乎正是如此。
我认为,启用“仅限邀请”模式,并禁用除 Clove 以外的所有登录方式,就能达到你想要的效果。没有 Discourse 账户的人会看到你显示的“仅限邀请”对话框。而已收到邀请的人应该能够通过 Clove OAuth 登录。
补充说明可能有助于阐明目标:
我正在搭建一个半私密社区,其中包含三类用户:工作人员(通过邮箱登录)、应用用户(通过 OAuth2 提供的单点登录 SSO)以及特殊访客(通过邮箱登录,但不是应用用户)。我希望特殊访客需要邀请才能登录(允许他们通过邮箱登录),但希望将 OAuth2 用户视为“可信”用户,无需邀请。原因是,能够成功完成 OAuth2 操作本身就意味着该用户是可信的。
我已经正确设置了基于邮箱的邀请登录功能,但这却影响了 OAuth2 登录,因为 OAuth2 用户也被要求提供邀请。我不希望他们需要或看到邀请——他们凭借拥有 SSO 账户这一事实已具备可信度。
这样是否更好地解释了问题?
这正是我遗漏的部分!
我想(但不完全确定),external auth skip create confirm 可能就是你要找的配置。该描述仅提到了 SSO,但我认为它现在也适用于 OAuth。我曾帮助他人设置了一个站点,使其在 OAuth2 配置中跳过创建对话框,我认为这就是关键所在。
啊,是的,真糟糕。我猜你接下来需要 fork oauth2 插件,并让它覆盖“仅限邀请”的设置。
感谢 @pfaffman,这似乎就是我不得不接受的情况。对于托管版 Discourse,这应该是不可能的吧?如果不是的话,我可能需要为它想别的办法了。