How to implement JWT-based authentication in Next.js 15 App Router -- register, login, protected routes, and middleware -- without NextAuth or any third-party auth library.