在next.js中,我们可以使用
getStaticProps(静态生成):在构建时获取数据。
getStaticPaths(静态生成):指定动态路由以基于数据预渲染。
getServerSideProps(服务器端渲染):在每个请求上获取数据。
运行服务器端代码,但要执行此操作,例如,我需要在该脚本中导入服务器端模块,例如,我想导入身份验证模块,以检查getserversideprops中的用户是否真实。 (或数据库模式,例如猫鼬)
由于我无法导入函数,因此我必须在文件顶部导入,这意味着任何人都可以看到该导入,并查看我如何验证用户的身份.....
示例:
import a from 'auth"
getserversideprops(){
if(a(req) ==true) ...
}
答案 0 :(得分:0)
getServerSideProps 将仅在服务器上运行,并且此代码不会与客户端或最终生成的页面捆绑在一起。由于您永远不应该将服务器端代码发送到客户端,Next.js 已经处理了它。
这是如何在服务器上进行身份验证的示例。
import auth0 from "auth0ConfigPath"
export const getServerSideProps = ({ req, res }) => {
const session = await auth0.getSession(req);
if (!session || session.user) {
res.writeHead(302, {
Location: "/api/v1/login",
});
res.end();
return { props: {} };
}
return {
props:{user:session.user}
}
};