---
title: Next.js App Router
description: Add Sudomimus Connect login to a Next.js App Router application.
editUrl: true
head: []
template: doc
sidebar:
  order: 2
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

`@sudomimus/nextjs` provides server route handlers for login, callback, logout, and current-session access.

## Wire the handlers

Create one server-only module with your Connect options and a shared durable `WebAuthStore`:

```ts
// src/lib/sudomimus.ts
import { createNextHandlers } from "@sudomimus/nextjs";

export const {
    start,
    callback,
    logout,
    current,
    currentFromCookieHeader,
} = createNextHandlers(options);
```

Export those handlers from App Router route files:

```ts
// 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";
```

Call `current(request)` in a Route Handler. In a Server Component, pass the request cookie header to `currentFromCookieHeader`. Never pass returned tokens into a Client Component.

The POST handlers validate `Origin` against the callback origin. Keep them as POST endpoints and configure a CALLBACK ReturnRule for the exact callback URL.

[View package source](https://github.com/sudomimus/sudomimus/tree/master/sdks/typescript/packages/nextjs)