在 getStaticProps 请求中处理 auth

Handling auth inside getStaticProps requests

我有一个 NextJs 应用程序,其后端位于 Laravel。

我们所有的 Laravel api 路由都受到 Laravel Sanctum 的保护,以防止 XSS 攻击。

问题在于此身份验证方法依赖于随每个请求发送 cookie。因此,当我尝试从 getStaticProps 函数发出这些请求时,我没有可用的 cookie。

这种情况的最佳做法是什么?为 getStaticProps 中需要的特定路线禁用密室?或者有什么黑魔法可以帮助我检索所需的 cookie?

这是个硬汉!不幸的是,在同一个对话中同时使用 auth 锁定内容和静态内容有点 anti-pattern,因为静态数据通常不应该依赖于动态数据,如果这有意义的话。如果有帮助,您也许可以在这里找到更多信息:Next.js withPageAuthRequired with getStaticProps.

getStaticProps() 在构建期间是 运行 并且只有一次,除非您使用 revalidate 并将其设置为秒数,并且它也无权访问 (req,res)。 next.js built-in 函数是 getServerSideProps()。运行 在发送到服务器的每个即将到来的请求中发送以生成页面。

  export default async function getServerSideProps(context){
   //some code here.... 
   return {
    props:{data}
   }
  }