NextJS-已验证和未验证用户的静态页面

时间:2020-10-13 15:19:12

标签: reactjs next.js

我正在创建一个React应用,并且我正在考虑使用NextJS获得更好的SEO。我想知道是否有一种方法可以根据用户的登录状态(无论是否登录)返回不同的静态页面

  1. 如果用户已通过身份验证:返回带有微调框/框架的静态页面,将该静态页面重新用于已验证用户的其他请求,并从客户端获取后端数据

  2. 如果未通过身份验证的用户(例如爬网程序):返回已获取数据的静态页面,并将该静态页面重新用于经过身份验证的用户的其他请求。

(我想生成静态页面,以便为用户(和搜索引擎)和服务器(较少的数据库查询)提供更好的性能)

我想对相同的网址执行上述操作。

对于其中一种情况,似乎Incremental Static Regeneration 可以做到这一点,enter image description here选择一个合理的值进行重新验证(例如1分钟或5分钟),然后将fallback = true用于具有不同ID的页面(例如/posts/[postId])和getStaticProps()

如果我在网址路径中使用一个段来识别用户是否通过了身份验证,那么我可能能够处理两种情况(例如:/[authSlug]/posts/[postId],例如/authenticated/posts/1和{{1 }}。

不幸的是,我还没有找到一种方法能够使用相同的网址 实现动态生成静态页面(而不是SSR,而是使用相同的网址)每个请求都有一个不同的页面。

如果我在中间使用一个反向代理,该反向代理根据用户的身份验证状态向NextJS服务器发送请求,可能会转到NextJS服务器中的不同路径而不更改用户的url,这可能是可行的,但是我会希望尽可能避免使用这种方法(这可能会导致从客户端在站点内部访问的路由出现问题)。

有没有办法实现我想要的上述解释?

0 个答案:

没有答案