跳转到内容

Next.js App Router

查看 Markdown

@sudomimus/nextjs 提供登录、callback、logout 与当前 session 读取所需的服务端 route handler。

创建一个服务端专用 module,配置 Connect options 与共享、持久的 WebAuthStore

src/lib/sudomimus.ts
import { createNextHandlers } from "@sudomimus/nextjs";
export const {
start,
callback,
logout,
current,
currentFromCookieHeader,
} = createNextHandlers(options);

在 App Router route 文件中导出这些 handlers:

app/api/login/route.ts
export { start as POST } from "@/lib/sudomimus";
// app/auth/callback/route.ts
export { callback as GET } from "@/lib/sudomimus";
// app/api/logout/route.ts
export { logout as POST } from "@/lib/sudomimus";

Route Handler 中调用 current(request)。Server Component 中把请求的 cookie header 传给 currentFromCookieHeader。不要把返回的 token 传进 Client Component。

POST handler 会根据 callback origin 校验 Origin。应保留 POST 方法,并为准确的 callback URL 配置 CALLBACK ReturnRule。

查看包源码