tobi1
2022 年8 月 6 日 21:39
1
我目前正尝试为我的 Discourse 应用集成 Auth0 身份验证。我基本上遵循了此处 的工作流程,并且已经让它运行起来了。
但是,出于几个原因,我对此并不完全满意:
点击登录/注册后,只有一个“使用 Auth0”按钮。我希望在点击 Discourse 页面顶部的登录/注册后,出现的唯一内容是 Auth0 登录/注册面板。
通过 Auth0 进行身份验证后,用户不应该需要创建新用户,而是应该因为 Auth0 而一切正常。
电子邮件身份验证应该通过 Auth0 处理,而不是通过 Discourse。
如果您已经在该浏览器中通过 Auth0 登录(可能是在我们平台的另一个模块中,使用相同的 Auth0 应用),那么您应该自动登录。
仍然应该有登录管理员用户的可能性,因为在实现第 1 点后,这可能会变得更具挑战性。
您能否帮助我设置所有内容,或者至少是其中的一部分?
blake
(Blake Erickson)
2022 年8 月 8 日 09:09
2
我相信您可以在 Discourse 中检查此设置 auth_overrides_email 来实现此目的。
您可以使用此站点设置来实现此目的:auth_skip_create_confirm
When signing up via external auth, skip the create account popup. Best used alongside auth_overrides_email, auth_overrides_username and auth_overrides_name.
(通过外部身份验证注册时,跳过创建帐户弹出窗口。最好与 auth_overrides_email、auth_overrides_username 和 auth_overrides_name 一起使用。)
还有一个 auth_immediately 设置可能也能满足您的需求:
Automatically redirect to the external login system without user interaction. This only takes effect when login_required is true, and there is only one external authentication method
(自动将用户重定向到外部登录系统,无需用户交互。这仅在 login_required 为 true 且只有一个外部身份验证方法时生效。)
您可以访问 /u/admin-login 来绕过 oauth。
3 个赞
tobi1
2022 年8 月 8 日 14:40
3
非常感谢您的意见,@blake
您是否也有关于第1点和第4点的意见,或者这些点比较难?
blake
(Blake Erickson)
2022 年8 月 8 日 17:17
4
我认为这些设置 auth_immediatley 和 auth_skip_create_confirm 将解决第 1 点和第 4 点。你能启用它们看看是否能有所改善吗?
tobi1
2022 年8 月 10 日 14:32
5
@blake 非常感谢您的意见。
我已按照设置页面以及您的建议进行了所有操作。但是,当我尝试登录时,会出现以下情况:
而在 https://community.auth0.com/ 上,尝试登录时会显示以下内容(这也是我网站的预期效果):
此外,我尝试使用我的测试电子邮件登录,尽管该电子邮件已在 Auth0 中进行身份验证,但它仍然要求进行电子邮件身份验证。
您知道如何相应地进行更改吗?
尝试禁用 enable local logins 设置。这将移除登录能力,只为用户留下使用 OAuth2 登录的选项。
我建议在单独的浏览器会话中进行此操作。这样,如果您遇到配置问题,可以撤销所做的任何更改,而不会失去登录能力。
你好 @blake
感谢你的见解。我已经取得了一些进展,但不幸的是,登录仍然存在一个轻微的问题。每当我点击登录按钮时,都会从 auth0 获取正确的用户信息,但 discourse 仍然会尝试创建一个账户。
我被带到一个“欢迎,让我们创建您的账户 ”屏幕,并出现一个错误,提示“主电子邮件已被占用 ”。
这是我当前所有覆盖配置:
请协助,谢谢。
leonardo
(Leonardo Mosquera)
2023 年1 月 20 日 13:22
8
您好,Robert!
您可以通过启用此设置来修复此问题:oauth2 允许关联更改
你好 @leonardo ,启用该设置后问题仍然存在。
Blake Erickson:
auth_overrides_email
不知怎么的,现在运行得很好了。我添加了 oauth2 email verified 规则,现在可以正常工作了。真有意思。
gagegreg
(Greg Gage)
2024 年12 月 11 日 21:48
11
喜欢这个插件。我注意到当我注销时,它确实会注销我的 Discourse。但当我点击登录时……它会立即重新登录我(无需前往 Auth0)。我在我的 Auth0 应用中允许了注销 URI,但看起来这个插件从未调用过 https://AUTH0_DOMAIN/v2/logout。谁维护这个?可以添加这个功能吗?