安装 Auth.js
首先为你的框架安装相应的 Auth.js 软件包。
npm install next-auth@beta
没有必要安装 @auth/core
,因为作为使用者,你应该永远不会直接
使用 @auth/core
软件包。
环境设置
唯一必须设置的环境变量是 AUTH_SECRET
。这是一个随机值,用于加密令牌(tokens)和电子邮件
验证哈希值。(详情请参见 部署 章节)。你可以通过运行官方提供的 Auth.js 命令行工具 自动生成一个:
npx auth secret
上述命令还会将生成的随机值添加到您的 .env
文件中,并遵守所用框架约定(例如:Next.js’ 是 .env.local
文件)。
配置
接下来,创建 Auth.js 配置文件和对象。在这里,你可以控制 Auth.js 库的行为,并指定自定义的身份验证逻辑、适配器等。我们建议为您所使用的框架的项目创建一个 auth.ts
文件。在该文件中,我们将向框架特定的启动函数传递所有选项,然后导出(export)路由处理程序、登录和注销方法等。
其实你可以给这个文件起任何你想要的名字,也可以把它放在任何你喜欢的地方, 但上面这些都是我们经过实践所形成的惯例。
- 首先,在应用程序根目录下创建一个新的
auth.ts
文件,内容如下。
./auth.ts
import NextAuth from "next-auth"
export const { handlers, signIn, signOut, auth } = NextAuth({
providers: [],
})
- 在
/app/api/auth/[...nextauth]/route.ts
文件中添加路由处理程序。
💡
该文件必须是 app/
路由器的路由处理程序,但应用程序的其他部分
可以放在 page/
目录下。
./app/api/auth/[...nextauth]/route.ts
import { handlers } from "@/auth" // Referring to the auth.ts we just created
export const { GET, POST } = handlers
- 添加可选的中间件以保持会话有效,每次调用时都会更新会话过期时间。
./middleware.ts
export { auth as middleware } from "@/auth"
设置身份验证方法
经过上述步骤,基本设置就完成了!接下来,我们将设置第一个身份验证方法,并填入 providers
数组。