我在我的项目中使用nextAuth进行身份验证,我想限制未登录客户端的某些页面。我尝试在getServerSideProps()函数中调用useSession()钩子,但在那里调用钩子时出现错误。是否可以使用nextAuth在服务器端进行重定向?
getServerSideProps()
useSession()
j5fpnvbx1#
你不能在getServerSideProps中使用useSession钩子。你需要使用getSession。你可以在这里阅读更多信息。如果会话不存在,你可以在getServerSideProps中重定向。下面是一个例子:
export async function getServerSideProps(context) { const session = await getSession(context) if (!session) { return { redirect: { destination: '/', permanent: false, }, } } return { props: { session } } }
mctunoxg2#
建议现在使用中间件方法:https://next-auth.js.org/tutorials/securing-pages-and-api-routes#server-side
2条答案
按热度按时间j5fpnvbx1#
你不能在getServerSideProps中使用useSession钩子。你需要使用getSession。你可以在这里阅读更多信息。如果会话不存在,你可以在getServerSideProps中重定向。下面是一个例子:
mctunoxg2#
建议现在使用中间件方法:https://next-auth.js.org/tutorials/securing-pages-and-api-routes#server-side