# 无需协助即可强制启用多因素认证锁定

**URL:** https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836
**Category:** UX
**Tags:** 2fa
**Created:** [2026年四月2日 19:35 UTC](https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836 "2026-04-02T19:35:58Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![Eviepayne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviepayne/32/352733_2.png) [@Eviepayne](https://meta.discourse.org/u/Eviepayne)
#### Post date: [2026年四月2日 19:35 UTC](https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836/1 "2026-04-02T19:35:58Z")

</div>

我最近开始在论坛上对所有用户强制启用多因素认证（MFA），有人告诉我，许多用户将无法查看提供 MFA 使用建议的帖子（因为很多用户并不懂技术）。

虽然该文章对匿名用户开放，但如果用户已登录但未注册 MFA，他们将无法访问网站的任何内容。他们会被卡在用户安全偏好设置页面，看到如下提示：

 ![image](https://global.discourse-cdn.com/meta/original/4X/5/9/f/59fdfd8a608bd907377a5aa07f7030673cb4d067.png)

就我个人而言，我认为用户应该能够处理这种情况，但我已经向那些不使用身份验证器应用的用户以及极度注重隐私的用户提供了关于如何“更私密地使用 MFA"的建议。  
请别再说教了，我明白。

如果能让我在强制启用消息中嵌入一些信息来帮助这些用户就好了，例如推荐一款密码管理器或身份验证器应用，或者提醒用户确保使用身份验证器的设备上时间准确。否则，许多自认缺乏相关知识的用户将会体验糟糕，从而比现在更加抵触我。

* * *

另外顺便一提，通行密钥（passkeys）也属于 MFA，这个问题应该已经解决了。

---

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [2026年四月2日 21:39 UTC](https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836/2 "2026-04-02T21:39:56Z")

</div>

> [@Eviepayne](#):
>
> 如果能在执行消息中嵌入信息就好了

你可以通过 `/admin/customize/site_texts?q=required%20to%20enable` 自定义站点文本来实现：

 ![image](https://global.discourse-cdn.com/meta/original/4X/b/1/e/b1e397dd2b77f8c5ccb01bcd88a66e0255f966b1.png)

---

<div class="post-metadata">

### Author: ![awesomerobot](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/awesomerobot/32/142900_2.png) [@awesomerobot](https://meta.discourse.org/u/awesomerobot)
#### Post date: [2026年四月2日 21:52 UTC](https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836/3 "2026-04-02T21:52:54Z")

</div>

如上所述，编辑网站文本是最简单的提供说明的方式，但在这种上下文中您仅限于纯文本。

如果您想添加一些 HTML（链接、图片等），可以从“主题与组件”管理区域创建一个新的主题组件。

在“组件”标签页（`admin/config/customize/components`）中，您可以点击“安装”，然后“创建新组件”，给它一个明显的名称……一旦组件创建完成，点击“编辑代码”。

从那里，您可以进入 JS 标签页，并添加类似以下内容：

```js
  import { apiInitializer } from "discourse/lib/api";

  const CustomMessage = <template>
    <div class="custom-2fa-message">
       您的自定义内容将显示在现有内容上方。
       <a href="#">示例链接</a>
    </div>
  </template>;

  export default apiInitializer("1.0", (api) => {
    api.renderBeforeWrapperOutlet("user-second-factor-wrapper", CustomMessage);
  });

```

 ![image](https://global.discourse-cdn.com/meta/original/4X/f/e/4/fe4c73116fe5d79b7c2c6eeffbe6a4018c4ff66d.png)

👆 通过这种方式，您可以添加链接或任何您想要的 HTML 内容。

如果您希望在此处链接到某个主题，可以使用 [页面发布](https://meta.discourse.org/t/page-publishing/151971) 功能将其公开：

> [@Discourse](#):
>
> ### 在需要登录时启用页面发布
> 
> 要允许发布的页面即使在没有登录的情况下也可见：
> 
> 1. 在 `管理` \> `设置` 中激活 `show_published_pages_login_required` 设置。  
> ![Show Published Pages](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/original/4X/d/c/1/dc1b81deb4861cb701939a47a27cf9536630e47e.png)

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2026年四月2日 21:58 UTC](https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836/4 "2026-04-02T21:58:32Z")

</div>

来自“非你所求”部门：或许可以给大家一周或一个月的时间来启用双因素认证，并持续提醒直到他们完成。没错，`current_user` 中确实包含 `second_factor_enabled` 字段，因此你可以为尚未完成设置的用户显示一个醒目的“末日将至”横幅，并附上操作指南的链接。

---

<div class="post-metadata">

### Author: ![Eviepayne](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/eviepayne/32/352733_2.png) [@Eviepayne](https://meta.discourse.org/u/Eviepayne)
#### Post date: [2026年四月3日 03:36 UTC](https://meta.discourse.org/t/multi-factor-authentication-enforcement-lock-in-without-help/399836/5 "2026-04-03T03:36:59Z")

</div>

我一个月前就做过这件事了。

> [@awesomerobot](#):
>
> `api.renderBeforeWrapperOutlet("user-second-factor-wrapper", CustomMessage);`

这应该就是我要找的东西。我会创建那个主题组件。谢谢。
