【发布时间】:2021-12-02 02:57:04
【问题描述】:
我正在构建一个在 Netlify 上托管 Next.js 的网站,我想限制对暂存环境的访问,并通过根据我的 ip 白名单检查用户 ips 来允许它在生产环境中使用。
为此,我需要使用 getServerSideProps 从标头中获取 IP 并进行比较。在暂存时,我不需要此功能,并且相同的页面不应具有此功能。
看起来 getServerSideProps 不能根据环境变量有条件地运行,所以我目前坚持使用它。
也许有人遇到过同样的问题,或者可以建议其他方法吗?
【问题讨论】:
-
您可以访问 getServerSideProps 中的环境变量,例如 process.env.YourKey 并处理此逻辑?
-
“看起来
getServerSideProps不能根据环境变量有条件地运行” - 你到底是什么意思?虽然getServerSideProps确实会在每个页面请求上运行,但您可以根据环境变量控制它在内部运行的内容。 -
@juliomalves getServerSideProps 和 getStaticProps 不能在页面内同时使用。另外,您不能将 getServerSideProps 包装在条件中。我使用 babel 插件解决了这个问题,并在构建时从代码中删除了 getServerSideProps。
-
我的意思是,您可以在
getServerSideProps中设置条件。随意添加您找到的解决方案作为您自己问题的答案。 -
@juliomalves 正如我之前所说,getServerSideProps 必须是条件的结果。
标签: javascript next.js conditional-statements server-side-rendering