feat(05-02): portal authentication via subscriber account number

- Add passwordHash field to Subscriber model (nullable for existing subscribers)
- Add portal-credentials NextAuth provider (accountNumber + password + tenantId)
- Persist subscriberId in JWT token and session for portal user identification
- Extend next-auth types with optional subscriberId on Session, User, and JWT
- Exclude /portal/login and /api/portal/auth from middleware auth requirement

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
kevin-asprec
2026-03-05 17:22:52 +08:00
parent 7fabb77ee4
commit 539564dbd4
4 changed files with 68 additions and 2 deletions

View File

@@ -45,6 +45,6 @@ export const config = {
* - /favicon.ico, /robots.txt, /sitemap.xml (static files)
* - Image files (.png, .jpg, .jpeg, .gif, .webp, .svg, .ico)
*/
"/((?!login|signup|api/auth|_next/static|_next/image|favicon\\.ico|robots\\.txt|sitemap\\.xml|.*\\.(?:png|jpg|jpeg|gif|webp|svg|ico)).*)",
"/((?!login|signup|portal/login|api/auth|api/portal/auth|_next/static|_next/image|favicon\\.ico|robots\\.txt|sitemap\\.xml|.*\\.(?:png|jpg|jpeg|gif|webp|svg|ico)).*)",
],
};