安装 Auth.js
首先安装适合您框架的包。
npm install next-auth@beta
安装 @auth/core
是不必要的,作为用户,您永远不需要与 @auth/core
交互。
设置环境
唯一必不可少的环境变量是 AUTH_SECRET
。这是一个随机值,库使用它来加密令牌和电子邮件验证哈希。(有关更多信息,请参阅 部署)。您可以通过官方 Auth.js CLI 运行来生成一个
npx auth secret
这也会将它添加到您的 .env
文件中,并尊重框架约定(例如:Next.js 的 .env.local
)。
配置
接下来,创建 Auth.js 配置文件和对象。在这里,您可以控制库的行为并指定自定义身份验证逻辑、适配器等。我们建议所有框架在项目中创建一个 auth.ts
文件。在这个文件中,我们将所有选项传递给框架特定的初始化函数,然后导出路由处理程序、登录和登出方法等。
您可以随意命名此文件,并将其放在任何您喜欢的位置,这些只是我们想出来的约定。
- 首先,在您的应用程序的根目录中创建一个新的
auth.ts
文件,内容如下。
./auth.ts
import NextAuth from "next-auth"
export const { handlers, signIn, signOut, auth } = NextAuth({
providers: [],
})
- 在
/app/api/auth/[...nextauth]/route.ts
下添加一个路由处理程序。
💡
此文件必须是 App Router 路由处理程序,但是,如果您愿意,应用程序的其余部分可以保留在 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
数组。