# 从另一个网站获取登录用户的信息

**URL:** https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368
**Category:** SSO
**Created:** [2024年二月14日 17:46 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368 "2024-02-14T17:46:19Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Farhan\_Hossen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/farhan_hossen/32/344620_2.png) [@Farhan\_Hossen](https://meta.discourse.org/u/Farhan_Hossen)
#### Post date: [2024年二月14日 17:46 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/1 "2024-02-14T17:46:19Z")

</div>

是否有什么方法可以在不重新加载页面的情况下，从我的 React SPA 中获取 Discourse 当前登录用户的信息？

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [2024年二月14日 18:02 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/2 "2024-02-14T18:02:39Z")

</div>

嗯，`/session/current.json` 路由在这里能用吗？🤔

---

<div class="post-metadata">

### Author: ![Farhan\_Hossen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/farhan_hossen/32/344620_2.png) [@Farhan\_Hossen](https://meta.discourse.org/u/Farhan_Hossen)
#### Post date: [2024年二月14日 18:08 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/3 "2024-02-14T18:08:37Z")

</div>

我尝试发送了一个 GET 请求，但返回了 404。

---

<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: [2024年二月14日 18:56 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/4 "2024-02-14T18:56:59Z")

</div>

我认为您可能需要 [discourse connect](https://meta.discourse.org/t/13045?silent=true)，以便两个站点登录到同一个 sso 源。

---

<div class="post-metadata">

### Author: ![Farhan\_Hossen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/farhan_hossen/32/344620_2.png) [@Farhan\_Hossen](https://meta.discourse.org/u/Farhan_Hossen)
#### Post date: [2024年二月14日 19:00 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/5 "2024-02-14T19:00:51Z")

</div>

我只是想获取当前登录的用户名。无需登录。

---

<div class="post-metadata">

### Author: ![Arkshine](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/arkshine/32/298682_2.png) [@Arkshine](https://meta.discourse.org/u/Arkshine)
#### Post date: [2024年二月14日 19:07 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/6 "2024-02-14T19:07:27Z")

</div>

这就是重点。如果您未在 Discourse 中登录，此路由将返回 404。

 ![image](https://global.discourse-cdn.com/meta/original/4X/1/d/c/1dc75066f1bfddf1ded7a4e0a9ae8a9bd097b077.png)

在另一个我未登录的浏览器中：

 ![image](https://global.discourse-cdn.com/meta/original/4X/d/9/2/d9265f971bb3f8f6ad97f9ae81990b894fc9bd4d.png)

这不正是您想要的吗？ 🤔

---

<div class="post-metadata">

### Author: ![Farhan\_Hossen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/farhan_hossen/32/344620_2.png) [@Farhan\_Hossen](https://meta.discourse.org/u/Farhan_Hossen)
#### Post date: [2024年二月14日 19:22 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/7 "2024-02-14T19:22:17Z")

</div>

在我的论坛中发送 API 请求时，它有效。但在我的 React 网站上运行时，它却无效，而我的 React 网站运行在同一个浏览器中。

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [2024年二月14日 20:40 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/8 "2024-02-14T20:40:46Z")

</div>

> [@Farhan\_Hossen](#):
>
> 但我的 React 网站不行，它运行在同一个浏览器上

这是有道理的，那个 React 网站没有也无法从论坛获取相关的凭证来发出请求，而且它_ **不应该能够获取它们** _。如果它能做到，那将是一个极大的安全问题。我建议按照上面提到的方法进行操作，并设置 [Discourse Connect](https://meta.discourse.org/t/13045?silent=true)。

---

<div class="post-metadata">

### Author: ![Farhan\_Hossen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/farhan_hossen/32/344620_2.png) [@Farhan\_Hossen](https://meta.discourse.org/u/Farhan_Hossen)
#### Post date: [2024年二月14日 21:10 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/9 "2024-02-14T21:10:20Z")

</div>

我已经在使用 [discourse connect](https://meta.discourse.org/t/13045?silent=true)，它允许特定群组的成员使用 discourse 登录我的网站。  
我的 react 应用中有一个 composer，允许用户直接从我的 react 应用创建主题，而无需在我的 react 应用中创建账户。因此，我需要知道在 discourse 中登录的用户信息。  
SSO 的问题在于它需要完全重新加载页面，而我需要避免这种情况才能使我的功能正常工作。

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [2024年二月14日 21:20 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/10 "2024-02-14T21:20:37Z")

</div>

我不相信那是不可能的，但也许其他人可以帮助你，并证明我是错的。

---

<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: [2024年二月14日 22:10 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/11 "2024-02-14T22:10:42Z")

</div>

您需要确保不通过带有 API 密钥的 JavaScript 前端进行 API 调用。

---

<div class="post-metadata">

### Author: ![Farhan\_Hossen](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/farhan_hossen/32/344620_2.png) [@Farhan\_Hossen](https://meta.discourse.org/u/Farhan_Hossen)
#### Post date: [2024年二月15日 05:49 UTC](https://meta.discourse.org/t/get-logged-in-user-info-from-another-website/295368/12 "2024-02-15T05:49:09Z")

</div>

当然，在这种情况下我使用服务器组件。感谢您的建议。
