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.
withSessionis deprecated and replaced withwithAuthrequireSessionis deprecated with replaced withrequireAuth- Instead of decorating the
Requestobject with aSessionobject, it is now decorated with anAuthobject that mirrorsuseAuth()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 });