I have a problem when I use /pages/_middleware.ts in next js, I want to get the jwt token and check it in that _middleware, that's my code :
import { verify } from 'jsonwebtoken';
import { NextRequest, NextResponse } from 'next/server';
export async function middleware(req: NextRequest) {
const { pathname } = req.nextUrl;
let token = req.cookies['auth'];
if (pathname.includes('/admin/dashboard')) {
if (token === undefined)
return NextResponse.redirect(new URL('/', req.url));
try {
verify(token, process.env.JWT_SECRET as string);
return NextResponse.next();
} catch (err) {
return NextResponse.redirect(new URL('/signin', req.url));
}
}
return NextResponse.next();
}
export default middleware;
get errors:
Error: Module not found: Can't resolve 'crypto'
Import trace for requested module:
./node_modules/jws/lib/sign-stream.js
./node_modules/jws/index.js
./node_modules/jsonwebtoken/decode.js
./node_modules/jsonwebtoken/index.js
./src/pages/admin/chinta/_middleware.ts