【问题标题】:Pass params from middleware to getStaticServerProps将参数从中间件传递给 getStaticServerProps
【发布时间】:2022-01-12 16:59:34
【问题描述】:

上一个问题之后的一个新问题有点混乱。

我想使用getStaticProps 静态呈现我的页面,同时在请求期间从我的 jwt(httponly cookie)获取用户。

  1. 我在网上阅读的大多数答案都使用getServerSideProps,但这不是我想要的,因为这意味着该页面不能像静态页面一样被预渲染/缓存。我不太明白为什么这会被广泛推广为首选解决方案。

  2. 进行 ajax 调用以获取经过身份验证的用户是愚蠢的 IMO。我什至不想走这条路。谁希望微调器看到经过身份验证的用户?在每一页上?

  3. 使用中间件可以验证 cookie 并在需要时重定向到 /login,但您不能在请求时将 props 传递给静态页面。

这个用例似乎很常见,以至于我有点困惑,我无法找到组合来正确使用它。
也许我遗漏了一些明显的东西。
有什么建议吗?

如果没有其他选择,我不得不在请求时对每个页面进行服务器渲染,因为我无法从我的令牌中获取用户。

【问题讨论】:

    标签: next.js


    【解决方案1】:

    毕竟 lmao,我会选择选项 2。
    原因是它涉及一个只需要在页面加载后发生一次的轻量级请求,我可以在全局上下文中加载后从顶级组件调用它。
    由于中间件已经检查重定向,重定向到/login 已经可以省略。
    这可以让我的静态页面保持快速渲染并应用增量静态重新生成。

    这比服务器渲染所有内容要好,这通常是建议的。
    我不知道为什么很多教程建议调用 api 并在服务器上的每个请求上构建页面,因为否则您无法缓存静态页面。

    我个人觉得通过中间件在请求时解析jwt会更好,但我会活下来。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-29
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多