【问题标题】:React Universal App: Authenticated API CallsReact Universal App:经过身份验证的 API 调用
【发布时间】:2017-03-13 12:13:39
【问题描述】:

我一直在构建一个 React 应用程序,使用 redux 进行状态管理。在线查看教程后,我能够构建一个具有登录/注销功能的不错的应用程序。但是在刷新时,我得到了 404。我意识到这是客户端渲染。因此,我添加了一个快速服务器来处理路由,进行服务器端渲染。

我调用的获取数据的 api 需要身份验证。我在 componentDidMount 中使用 jwt 令牌调用 api。它在客户端工作正常。

这是我的问题:

但是如果用户刷新页面,服务器会发送 html 骨架,然后客户端在 componentDidMount 中进行调用。数据获取可以在服务器端完成吗?如果是,我将如何获取令牌(来自浏览器的 localStorage)?

【问题讨论】:

  • 我不清楚你的问题是什么(似乎有很多)。你能把你的问题说得更具体一点吗?
  • 已编辑以将问题限制为 2 个。

标签: reactjs redux react-router isomorphic-javascript


【解决方案1】:

您无法从浏览器localStorage 获取数据,因为服务器无法访问浏览器。如果您的 API 需要访问令牌,那么您必须首先呈现页面,从 localStorage 获取令牌,然后才能从 API 中获取数据。

【讨论】:

  • 所以在需要身份验证的此类应用程序中,由于我无法获得数据,因此在服务器上渲染毫无意义?
  • 无论用户是否经过身份验证(导航栏、页脚等),您仍然可以渲染显示的组件。 SSR 对 SEO 也很有用。
  • 感谢德维达斯。最后一个问题 - 如果我在客户端上渲染,并且只是在服务器上处理路由,以便用户在刷新时不会得到 404。我的应用会被称为通用/同构吗?
  • 根据这篇文章 (medium.com/@ghengeveld/…) - 是的。
  • 非常感谢。真的很有帮助
猜你喜欢
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2016-08-01
  • 1970-01-01
相关资源
最近更新 更多