Skip to Content
Clerk logo

Clerk Docs

Ctrl + K
Go to clerk.com

Next.js server-side changes

Before starting this guide, please complete the Client-side changes.

API routes

Helpers for API routes have been updated to mirror the new useAuth() hook on the client-side.

  • withSession is deprecated and replaced with withAuth
  • requireSession is deprecated with replaced with requireAuth
  • Instead of decorating the Request object with a Session object, it is now decorated with an Auth object that mirrors useAuth() on the client-side.
    • const { userId, sessionId, getToken } = req.auth;

Example usage

import { withAuth } from "@clerk/nextjs/api"; export default withAuth(async (req, res) => { const { userId, sessionId, getToken } = req.auth; const hasuraToken = await getToken({template: "hasura"}); // Your handler });

Edge middleware

Edge middleware has also been updated to mirror the new useAuth() hook on the client-side. The import path has also been changed to avoid confusion.

import { withEdgeMiddlewareAuth } from "@clerk/nextjs/edge-middleware"; export const middleware = withEdgeMiddlewareAuth((req, ev) => { const { userId, sessionId, getToken } = req.auth; // Your middleware });

Last updated on September 29, 2023

What did you think of this content?

Clerk © 2024