如果未使用nextAuth记录,如何在NextJS中重定向

mm5n2pyu  于 2023-01-08  发布在  其他
关注(0)|答案(2)|浏览(142)

我在我的项目中使用nextAuth进行身份验证,我想限制未登录客户端的某些页面。
我尝试在getServerSideProps()函数中调用useSession()钩子,但在那里调用钩子时出现错误。
是否可以使用nextAuth在服务器端进行重定向?

j5fpnvbx

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 }
  }
}
mctunoxg

mctunoxg2#

建议现在使用中间件方法:https://next-auth.js.org/tutorials/securing-pages-and-api-routes#server-side

相关问题