# 用户可以在其个人资料上显示其 User ID 吗？

**URL:** https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001
**Category:** Development
**Created:** [2026年一月21日 16:20 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001 "2026-01-21T16:20:21Z")
**Posts on this page:** 15
**Page:** 1

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月21日 16:20 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/1 "2026-01-21T16:20:21Z")

</div>

有没有办法让用户在查看个人资料时看到自己的 **用户 ID** ？

目前，ID 只能通过管理面板对管理员可见，但我希望用户能够公开显示他们的 ID。

这是可以通过管理员设置、组件还是插件启用的功能？  
请告诉我！谢谢。

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [2026年一月21日 16:29 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/2 "2026-01-21T16:29:27Z")

</div>

这应该可以在主题组件中完成。用户 ID 无需额外请求即可获取，因此您只需要一些 JavaScript 即可在个人资料页面上的插件插口中显示它。

 ![image](https://global.discourse-cdn.com/meta/original/4X/3/0/5/3053ce69c07ec085992919f6b8c432e7ee765ab5.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年一月21日 19:29 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/3 "2026-01-21T19:29:54Z")

</div>

> [@Ivernite](#):
>
> 我希望用户能够公开显示他们的 ID。

用例是什么？知道一个随机整数有什么重要性？

---

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月22日 08:06 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/4 "2026-01-22T08:06:55Z")

</div>

因为 UID 是不可变的（永不更改），它可以充当某人账户的永久指纹。用户名可以更改，因此对于支持工单，它可以立即找到他们的账户、交易、认证会话等……UID 不能被伪造，并且永远是唯一的。  
我希望每个新用户都能使 UID 递增 1。

---

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月22日 08:20 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/5 "2026-01-22T08:20:31Z")

</div>

@Moin 感谢您的回复，这很有帮助。是的，我可以在“网络”→“XHR”→“响应”中查看响应。完美。但我不知道如何在用户的账户资料页中显示 UID。我想在以下位置显示它：[https://mydomain.com/u//preferences/account](https://mydomain.com/u//preferences/account)  
但在创建组件中只有这些选项：，标题前，标题后和页脚

这最终是我想要的效果。

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

我已经通过一些 JavaScript 使 UID 显示出来了，但它只显示在主页的页眉上。

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [2026年一月22日 08:42 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/6 "2026-01-22T08:42:15Z")

</div>

> [@1vernit3](#):
>
> 我希望用户能够公开显示他们的 ID。

> [@1vernit3](#):
>
> 想在以下位置显示它：[https://mydomain.com/u//preferences/account](https://mydomain.com/u//preferences/account)

`/my/preferences/account` 不是公开的；其他用户看不到，但根据您的用例，这可能足以让用户自己看到他们的 ID。

> [@1vernit3](#):
>
> 但在创建组件中只有这些选项：, 标题前, 标题后和页脚

您需要找到一个最接近您想要显示信息的插件插口（plugin outlet）。我通常使用 [开发者工具栏](https://meta.discourse.org/t/introducing-discourse-developer-toolbar/346215) 中的按钮使它们在论坛上可见。在论坛中看到它们更容易帮助我找到最佳的插口。您可以在 [Theme Developer Tutorial: 1. Introduction](https://meta.discourse.org/t/theme-developer-tutorial-1-introduction/357796) 中找到更多关于如何在插口中显示内容的信息。

---

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月22日 09:14 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/7 "2026-01-22T09:14:53Z")

</div>

好的，如果我想让所有人都看到它（公开），我会把它放在：`mydomain.com/u/<user_summary>`  
所以通过在浏览器控制台中调用 `enableDevTools()`，我认为 **`user-profile-secondary`** 将是一个好地方。  
我现在试试。

我卡住了。我如何获取我正在查看的用户的 `id`？因为 `api.getCurrentUser` 返回的是已登录用户的 ID。

---

<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年一月22日 14:56 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/8 "2026-01-22T14:56:56Z")

</div>

[Custom Components -- add button or text at any plugin outlet](https://meta.discourse.org/t/custom-components-add-button-or-text-at-any-plugin-outlet/349629) 是一个关于如何将一些文本固定到任何插件出口位置的示例。我认为你需要创建自己的主题组件才能访问 `user_id`。

我认为你在调用组件时会做类似以下的操作：

```plaintext
        <YourIdComponent
          @user={{@user}}
        />

```

---

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月22日 16:09 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/9 "2026-01-22T16:09:54Z")

</div>

但是如何通过代码获取其他用户的 user.id 呢。

---

<div class="post-metadata">

### Author: ![NateDhaliwal](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/natedhaliwal/32/313494_2.png) [@NateDhaliwal](https://meta.discourse.org/u/NateDhaliwal)
#### Post date: [2026年一月22日 23:12 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/10 "2026-01-22T23:12:19Z")

</div>

使用上面 @pfaffman 的帖子，然后您可以拥有一个使用 `{{@user.id}}` 的组件。请参阅 [https://meta.discourse.org/t/theme-developer-tutorial-5-building-and-using-components/357800，但我认为您可以在](https://meta.discourse.org/t/theme-developer-tutorial-5-building-and-using-components/357800%EF%BC%8C%E4%BD%86%E6%88%91%E8%AE%A4%E4%B8%BA%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%9C%A8) Discourse TC UI 的“编辑 CSS/HTML”\>“JS”中使用 `api.renderInOutlet()` 来实现它。

---

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月23日 15:24 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/11 "2026-01-23T15:24:39Z")

</div>

是的，`api.renderInOutlet()` 非常给力。然而，我之前遇到的问题——现在不重要了，因为我采用了不同的方法来解决——是我不知道如何获取正在查看的个人资料的 `user.id`。

你有什么想法吗？

---

<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年一月23日 16:03 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/12 "2026-01-23T16:03:08Z")

</div>

> [@1vernit3](#):
>
> 我不知道如何获取正在查看的个人资料的 `user.id`。

这是答案，但听起来你没有理解它所需的背景知识。

> [@NateDhaliwal](#):
>
> 然后你可以有一个组件使用 `{{@user.id}}`。请参阅 [主题开发者教程：5. 构建和使用组件](https://meta.discourse.org/t/theme-developer-tutorial-5-building-and-using-components/357800)，

---

<div class="post-metadata">

### Author: ![Moin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moin/32/554653_2.png) [@Moin](https://meta.discourse.org/u/Moin)
#### Post date: [2026年一月23日 16:48 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/13 "2026-01-23T16:48:23Z")

</div>

我认为，如果您选择一个提供您正在查看的用户的模型的插口会更容易。  
您选择的插口提供有关主题的信息，但不是有关用户的信息

> [@1vernit3](#):
>
> 我只是将用户 ID 放在插件插口中： **header-contents\_\_after**

> <https://github.com/discourse/discourse/blob/6bcffe2b06ac66e41f965c58b1cad180805db33d/frontend/discourse/app/components/header/contents.gjs#L147-L152>

  
用户个人资料上的插口，如 `user-post-names`，提供用户模型： https://github.com/discourse/discourse/blob/5b6d32804a1eb658fdc043b082336a17b4c1c944/frontend/discourse/app/templates/user.gjs#L220-L224 使用提供模型的插口，您应该能够像教程中的示例一样使用 `@outletArgs`：https://meta.discourse.org/t/theme-developer-tutorial-4-using-outlets-to-insert-and-replace-content/357799。那里的示例使用 `discovery-list-container-top`，它提供 `@outletArgs={{lazyHash category=@model.category tag=@model.tag}}`

> [@system](#):
>
> ```plaintext
> api.renderInOutlet(
> "discovery-list-container-top",
> <template>
> <div class="custom-welcome-banner">
> ...
> You're viewing
> {{#if @outletArgs.category}}
> "{{@outletArgs.category.name}}" topics.
> {{else}}
> all topics.
> {{/if}}
> </div>
> </template>
> );
> 
> ```

这就是为什么我选择一个提供用户模型的插口。当您将鼠标悬停在插口上并看到您正在查看的用户的 ID 时，您可以看到模型。教程中的许多示例都使用 `currentUser` 服务，它提供当前用户的 ID，这似乎不是您要找的。

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

---

<div class="post-metadata">

### Author: ![1vernit3](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/1vernit3/32/539886_2.png) [@1vernit3](https://meta.discourse.org/u/1vernit3)
#### Post date: [2026年一月23日 19:43 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/14 "2026-01-23T19:43:40Z")

</div>

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

export default apiInitializer((api) => {
    
    api.renderInOutlet("user-post-names",
    `<template>
        {{#if @outletArgs.model}}
            <div class="uid-label-profile">
                UID:
                <span class="uid-value-profile">
                {{ @outletArgs.model.id }}
                </span>
            </div>
        {{/if}}
    </template>
    `);

});

```

@Moin 你的分析非常准确——我只是照着做了，现在一切都完美运行了。谢谢你。

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2026年二月22日 19:43 UTC](https://meta.discourse.org/t/can-users-make-their-user-id-visible-on-their-profile/394001/15 "2026-02-22T19:43:48Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
