getServerSession

文档 https://next-auth.js.org/configuration/nextjs#getserversession

useSession 相比,无论用户是否登录(无论是否存在 cookies),都会返回一个 session 对象,而 getServerSession 仅在用户登录时(仅在存在已认证的 cookies 时)才会返回 session 对象,否则返回 null

  1. server 下新建 auth 目录,新建 index.ts 文件
  2. route.ts 中的 authOptions 配置抽到 auth/index.ts 中进行复用
  3. 路由守卫:当用户没有登录时,重定向到登录页
  4. 在 app 下创建 dashboard 目录,假设这个路由是需要进行守卫的,在 dashboad 下再新建 layout.tsxpage.tsx, 在 layout 中去做路由守卫
  5. NextJS 专属:在 src 下新建 middleware.ts,注意:需要运行在 vercel 部署的应用中