WithMiddlewareAuthRequired: ((middlewareOrOpts?) => NextMiddleware)

Type declaration

    • (middlewareOrOpts?): NextMiddleware
    • Protect your pages with Next.js Middleware. For example:

      To protect all your routes:

      // middleware.js
      import { withMiddlewareAuthRequired } from '@auth0/nextjs-auth0/edge';

      export default withMiddlewareAuthRequired();

      To protect specific routes:

      // middleware.js
      import { withMiddlewareAuthRequired } from '@auth0/nextjs-auth0/edge';

      export default withMiddlewareAuthRequired();

      export const config = {
      matcher: '/about/:path*',
      };

      For more info see: https://nextjs.org/docs/advanced-features/middleware#matching-paths

      To run custom middleware for authenticated users:

      // middleware.js
      import { withMiddlewareAuthRequired, getSession } from '@auth0/nextjs-auth0/edge';

      export default withMiddlewareAuthRequired(async function middleware(req) {
      const res = NextResponse.next();
      const user = await getSession(req, res);
      res.cookies.set('hl', user.language);
      return res;
      });

      To provide a custom returnTo url to login:

      // middleware.js
      import { withMiddlewareAuthRequired, getSession } from '@auth0/nextjs-auth0/edge';

      export default withMiddlewareAuthRequired({
      returnTo: '/foo',
      // Custom middleware is provided with the `middleware` config option
      async middleware(req) { return NextResponse.next(); }
      });

      You can also provide a method for returnTo that takes the req as an argument.

      // middleware.js
      import { withMiddlewareAuthRequired, getSession } from '@auth0/nextjs-auth0/edge';

      export default withMiddlewareAuthRequired({
      returnTo(req) { return `${req.nextURL.basePath}${req.nextURL.pathname}`};
      });

      Parameters

      Returns NextMiddleware