用于开发/测试目的的假身份验证提供程序

:information_source: 仅限本地开发使用。不适用于生产环境

在本地开发 Discourse 时,能够测试各种登录方式非常有用。大多数情况下,我们并不关心实际的认证流程,只需了解 Discourse 会对不同输入做出何种反应。例如:

  • 如果邮箱未验证会发生什么?
  • 如果认证提供商未向我们发送邮箱地址会发生什么?
  • 如果认证提供商未向我们发送用户名会发生什么?
  • 如果邮箱匹配但 UID 不匹配会发生什么?
  • 使用外部认证时,邀请功能如何运作?
  • 登录界面长什么样?
  • (我可以一直列举下去……但你懂的)

到目前为止,唯一的实际选项是“在你的开发环境中配置真实的 Google/Twitter/OAuth2 等认证”。这虽然可行,但极其繁琐,而且你不得不创建多个 Google/Twitter 账号来测试不同的组合。

我制作了一个更精简的方案:

如果你在本地安装此插件,它将提供一个伪造的认证提供商。对 Discourse 而言,它的工作方式与其他任何提供商(如 Google、Twitter、OAuth2、OIDC 等)完全相同。

当你启动登录流程时,将看到此界面,你可以手动输入任意数据。提交的值会通过 Cookie 被记住,因此你可以轻松重复相同的操作。这些字段对应于 Omniauth 认证哈希模式

它使用 ManagedAuthenticator 系统,因此数据将存储在 user_associated_accounts 表中,其 provider_namedevelopmentauth


它还支持 DiscourseConnect!要尝试此功能,只需安装插件并启用 enable_discourse_connect 设置。下次登录时,你将看到所有 DiscourseConnect 字段已准备就绪。


下次处理认证相关工作时,请尝试使用它,并告诉我有哪些地方可以改进 :slight_smile:

:philosoraptor: 请注意,这是迄今为止发明过的最不安全的认证插件。因此,它将在生产环境中拒绝启动,你必须将环境变量 DISCOURSE_DEV_ALLOW_ANON_TO_IMPERSONATE 设置为 1 才能使其正常工作。

17 个赞

你好,这个插件与 Ember CLI 不兼容。当我输入详细信息并点击“连接”时,我看到以下内容:

出现的错误与 Unable setup development enviroment(docker) as DiscourseConnect provider 中的相同。

能否请您查看一下?