# 邀请链接到主题将用户发送到主页，而不是主题

**URL:** https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078
**Category:** Bug
**Tags:** invites
**Created:** [2022年三月16日 07:12 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078 "2022-03-16T07:12:52Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年三月16日 07:12 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/1 "2022-03-16T07:12:52Z")

</div>

> [@tobiaseigen](#):
>
> \*在我自己的测试中，我发现“邀请加入话题”流程似乎不再按预期工作了——也许出现了一个回归。需要进一步探索，但似乎新用户在创建新账户并确认其电子邮件地址等信息后，并没有进入话题，而是进入了主页。用户仍然会被正确地添加到邀请中指定的任何组中。

@dan 我发誓在我实施最新更改时已经测试了所有这些，但我可以重现这个错误。它只影响邀请 _链接_，而不影响邀请电子邮件。重现步骤：

1. 进入一个话题，在话题菜单中选择 🔗 分享按钮，然后创建邀请加入该话题。如果它在一个安全类别中，请添加一个组以将用户添加到其中。（无论哪种情况都可以重现此错误）。保存链接并将其复制到剪贴板。
2. 在隐身模式下将链接粘贴到地址栏以接受邀请。填写必填字段（不需要密码 - 无论是否提供密码都可以重现此错误）并提交表单。
3. 在您的电子邮件中，点击链接以确认您的电子邮件地址并登录（如果您没有指定密码，则用于添加密码）。
4. 您将被带到主页，而不是您被邀请加入的话题。😭
5. 如果您将用户添加到了一个组，您可以通过查看用户的管理员页面来确认这一点。

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年三月16日 07:49 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/2 "2022-03-16T07:49:36Z")

</div>

前几天它对我来说是有效的？我只能在特定条件下（例如，密码绕过）被发送到主页。我认为我运行的步骤与你的唯一区别是，我从电子邮件中复制了激活 URL 并粘贴到另一个浏览器中。

> [@JammyDodger](#):
>
> 我再次尝试了一下：
> 
> - 使用主题底部的“分享”来创建邀请
> - 到达主题 - PrivateTopic
> - 添加到组 - PrivateGroup
> - 保存并复制
> 
> ![invite options](https://global.discourse-cdn.com/meta/original/3X/d/0/d0c478160cc0785bf65a69e4c3e4d29d5a1be967.jpeg)
> 
> - 在单独的浏览器中使用邀请链接
> - 注册新用户
> - 激活帐户
> - 到达 PrivateTopic
> 
> ![arrived at PrivateTopic](https://global.discourse-cdn.com/meta/original/3X/a/c/ac1764cc1e39b91745354751cd09fd35c7056968.jpeg)

我使用的是手机，管理员使用的是 Android/Chrome，测试用户使用 Android/Firefox 接受邀请。电子邮件使用的是 Gmail。

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年三月16日 07:52 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/3 "2022-03-16T07:52:46Z")

</div>

好的……如果您通过电子邮件邀请某人，该过程将按设计工作。电子邮件中的链接包含所有魔力，可让合适的人立即加入，并使用已知且正确的电子邮件地址。

问题在于，如果您通过链接而不是电子邮件邀请某人，使用“保存邀请”按钮，然后复制显示的链接并共享该链接。如果您不通过电子邮件限制，您邀请的人必须执行电子邮件确认步骤，这会导致他们在首次登录时不会被发送到该主题。

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年三月16日 07:56 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/4 "2022-03-16T07:56:40Z")

</div>

我的测试使用的是复制链接，而不是限制到电子邮件。🤷‍♂️

> [@JammyDodger](#):
>
> - 使用主题底部的“分享”来创建邀请
> - 进入主题 - PrivateTopic
> - 添加到群组 - PrivateGroup
> 
> - 保存并复制

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年三月16日 08:05 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/5 "2022-03-16T08:05:04Z")

</div>

哦。抱歉，你写的是……

> [@JammyDodger](#):
>
> I copied the activation URL from the email to paste into a separate browser.

……我读错了。

也许是我们的网站上某个管理员设置不同？我再看一眼，但我最新的测试中，在一个仅限邀请的社区中，我遇到了和你描述的完全一样的复现。编辑：刚又测试了一下，还是被发送到了主页。

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年三月16日 08:07 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/6 "2022-03-16T08:07:53Z")

</div>

啊，我的不是仅限邀请。我一定是错过了 @gassim 的设置。这也许可以解释其中的区别。

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年三月16日 08:11 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/7 "2022-03-16T08:11:07Z")

</div>

我在元（meta）上尝试了一下，在一个安全类别的主题中，得到了相同的重现。不确定你的网站和我测试的网站有什么不同。

---

<div class="post-metadata">

### Author: ![gassim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gassim/32/220910_2.png) [@gassim](https://meta.discourse.org/u/gassim)
#### Post date: [2022年三月16日 08:21 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/8 "2022-03-16T08:21:57Z")

</div>

> [@JammyDodger](#):
>
> 在 @gassim 的设置中

您好 @JammyDodger，  
谢谢，但社区是开放的社区；但是，我们有一个类别是私有的，并且正在执行与 @tobiaseigen 相同的步骤，结果相同。

感谢 @tobiaseigen 的跟进！

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年三月16日 09:37 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/10 "2022-03-16T09:37:07Z")

</div>

> [@tobiaseigen](#):
>
> 我在这里的 meta 上，在一个安全类别的主题中试了一下，得到了相同的复现结果。不确定你的网站和我测试的网站有什么不同。

这非常有趣。我刚刚更新到了最新版本，我所有的邀请管理员设置似乎都是默认的，我又运行了相同的测试，并且我登陆到了正确的“到达主题”主题。

我再次启用了“仅邀请”进行了测试，这也让我登陆到了正确的页面。

但是，在注册时跳过密码，然后在通过电子邮件提示设置密码，这会让我登陆到主页而不是“到达主题”主题。

我不知道为什么我的可以正常工作？有什么可以改变来尝试复现吗？

---

<div class="post-metadata">

### Author: ![gassim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gassim/32/220910_2.png) [@gassim](https://meta.discourse.org/u/gassim)
#### Post date: [2022年三月27日 20:22 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/11 "2022-03-27T20:22:28Z")

</div>

> [@JammyDodger](#):
>
> 这非常有趣。我刚刚更新到最新版本，我所有的邀请管理员设置似乎都恢复为默认设置，而且我刚刚再次进行了相同的测试，我登陆到了正确的“到达主题”主题。

@JammyDodger 你是注册的新用户吗？这个问题只会在你注册新用户时发生；但是，如果你是登录用户，链接将按预期工作。

@tobiaseigen 请告诉我你是否能够重现 @JammyDodger 的步骤。我尝试了所有不同的方法，但任何新用户都会被发送到主页而不是私有类别中的私有主题。

谢谢！

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年三月27日 20:30 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/12 "2022-03-27T20:30:58Z")

</div>

> [@gassim](#):
>
> @JammyDodger 你是注册新用户吗？这个问题只会在你注册新用户时发生；但是，如果你登录，链接将按预期工作。

我正在第一次注册一个测试用户。

这是我的截图，你可以看到欢迎叠加层覆盖在测试用户最初登陆的主题上，并且它位于一个私有类别中：

 ![arrived at PrivateTopic](https://global.discourse-cdn.com/meta/original/3X/a/c/ac1764cc1e39b91745354751cd09fd35c7056968.jpeg)

我的只是一个简单的测试站点，没有替代登录或SSO。我不知道这是否有区别？

---

<div class="post-metadata">

### Author: ![gassim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gassim/32/220910_2.png) [@gassim](https://meta.discourse.org/u/gassim)
#### Post date: [2022年三月27日 20:33 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/13 "2022-03-27T20:33:05Z")

</div>

好的，谢谢！你知道我创建的邀请链接和你创建的唯一区别是“最大使用次数”设置为 = 1，而我没有尝试设置“最大使用次数” = 1。

---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年三月27日 20:34 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/14 "2022-03-27T20:34:42Z")

</div>

我也尝试了 5000（默认最大值）进行许多测试，这也奏效了。

---

<div class="post-metadata">

### Author: ![gassim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gassim/32/220910_2.png) [@gassim](https://meta.discourse.org/u/gassim)
#### Post date: [2022年三月27日 20:36 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/15 "2022-03-27T20:36:08Z")

</div>

好的，我看到的最后一个区别是移动端！

> [@JammyDodger](#):
>
> 我当时使用的是手机，也就是安卓/Chrome用于管理员，安卓/Firefox用于接受测试用户的邀请。Gmail用于电子邮件。

您认为如果我尝试使用手机是否可行？我正在笔记本电脑上使用Chrome，但也尝试过Firefox，但问题依然存在。

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年三月28日 09:37 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/16 "2022-03-28T09:37:40Z")

</div>

我在这里又进行了一轮测试，我认为我终于找到了可复现的步骤，既可以成功接受邀请并进入邀请中指定的帖子，也可以错误地被带到主页。

如果您在新隐身窗口（之前未使用过的 Chrome 或 Safari 浏览器）中点击确认电子邮件的链接来接受邀请，您会看到如下面的屏幕截图所示的序列。您点击“激活您的帐户”，然后点击“继续”，接着您会进入主页。 😿

如果您在用于接受邀请的同一隐身窗口（Chrome 或 Safari 浏览器）中点击确认电子邮件的链接，您会看到如下面的序列。您永远不会看到带有第二个“继续”按钮的屏幕，而是直接被带到邀请中指定的帖子。 😸

---

<div class="post-metadata">

### Author: ![dan](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/dan/32/101549_2.png) [@dan](https://meta.discourse.org/u/dan)
#### Post date: [2022年三月28日 11:20 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/17 "2022-03-28T11:20:50Z")

</div>

重定向 URL 存储在 cookie 中，如果用户更改浏览器、使用隐身模式、重置 cookie 等，可能会丢失。我在用户激活帐户后添加了一个额外的步骤来查找邀请，并将用户重定向到他们最初被邀请的主题。

> <https://github.com/discourse/discourse/pull/16298>
>
> This did not work properly everytime because the destination URL was
> saved in a… cookie and that can be lost for various reasons. This commit
> redirects the user to invited topic if it exists.

---

<div class="post-metadata">

### Author: ![gassim](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/gassim/32/220910_2.png) [@gassim](https://meta.discourse.org/u/gassim)
#### Post date: [2022年三月28日 13:50 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/18 "2022-03-28T13:50:02Z")

</div>

[@everyone](https://meta.discourse.org/groups/everyone) 👆 非常感谢！😍❤👏

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年四月6日 21:53 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/20 "2022-04-06T21:53:00Z")

</div>

@dan 感谢您修复此问题！我刚进行了测试，它效果非常好。 🪄

---

<div class="post-metadata">

### Author: ![tobiaseigen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/tobiaseigen/32/539204_2.png) [@tobiaseigen](https://meta.discourse.org/u/tobiaseigen)
#### Post date: [2022年四月6日 21:53 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/21 "2022-04-06T21:53:06Z")

</div>



---

<div class="post-metadata">

### Author: ![JammyDodger](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jammydodger/32/254611_2.png) [@JammyDodger](https://meta.discourse.org/u/JammyDodger)
#### Post date: [2022年十一月24日 09:16 UTC](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078/22 "2022-11-24T09:16:47Z")

</div>



[下一頁](https://meta.discourse.org/t/invite-links-to-topic-send-user-to-home-page-not-to-topic/221078.md?page=2)
