Add JWT configuration and improve email error handling
All checks were successful
Build And Push Image / docker (push) Successful in 2m51s

- Add jwtSecret to runtime config with fallback to sessionSecret
- Enhance email error tracking in portal account creation API
- Fix jsonwebtoken imports and improve type safety
- Include detailed email error information in API responses
This commit is contained in:
2025-08-09 16:55:59 +02:00
parent 97653b7307
commit bff89bd89d
3 changed files with 19 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
import { sign, verify } from 'jsonwebtoken';
import jwt from 'jsonwebtoken';
export interface EmailVerificationTokenPayload {
userId: string;
@@ -27,7 +27,7 @@ export async function generateEmailVerificationToken(userId: string, email: stri
iat: Date.now()
};
const token = sign(payload, runtimeConfig.jwtSecret, {
const token = jwt.sign(payload, runtimeConfig.jwtSecret as string, {
expiresIn: '24h',
issuer: 'monacousa-portal',
audience: 'email-verification'
@@ -62,10 +62,10 @@ export async function verifyEmailToken(token: string): Promise<{ userId: string;
try {
// Verify JWT signature and expiration
const decoded = verify(token, runtimeConfig.jwtSecret, {
const decoded = jwt.verify(token, runtimeConfig.jwtSecret as string, {
issuer: 'monacousa-portal',
audience: 'email-verification'
}) as EmailVerificationTokenPayload;
}) as any as EmailVerificationTokenPayload;
// Validate token purpose
if (decoded.purpose !== 'email-verification') {
@@ -118,10 +118,10 @@ export async function isTokenValid(token: string): Promise<boolean> {
return false;
}
const decoded = verify(token, runtimeConfig.jwtSecret, {
const decoded = jwt.verify(token, runtimeConfig.jwtSecret as string, {
issuer: 'monacousa-portal',
audience: 'email-verification'
}) as EmailVerificationTokenPayload;
}) as any as EmailVerificationTokenPayload;
return decoded.purpose === 'email-verification' && activeTokens.has(token);
} catch (error) {