#136: EMail Auth on different browsers ...

This commit is contained in:
2025-03-13 13:55:09 +01:00
parent 162c5b042f
commit 097a6cb360
4 changed files with 103 additions and 27 deletions

View File

@@ -20,21 +20,31 @@ export class AuthController {
}
try {
// Schritt 1: Hole den Benutzer anhand der E-Mail-Adresse
// Step 1: Get the user by email address
const userRecord = await this.firebaseAdmin.auth().getUserByEmail(email);
if (userRecord.emailVerified) {
return { message: 'Email is already verified' };
// Even if already verified, we'll still return a valid token
const customToken = await this.firebaseAdmin.auth().createCustomToken(userRecord.uid);
return {
message: 'Email is already verified',
token: customToken,
};
}
// Schritt 2: Aktualisiere den Benutzerstatus
// Hinweis: Wir können den oobCode nicht serverseitig validieren.
// Wir nehmen an, dass der oobCode korrekt ist, da er von Firebase generiert wurde.
// Step 2: Update the user status to set emailVerified to true
await this.firebaseAdmin.auth().updateUser(userRecord.uid, {
emailVerified: true,
});
return { message: 'Email successfully verified' };
// Step 3: Generate a custom Firebase token for the user
// This token can be used on the client side to authenticate with Firebase
const customToken = await this.firebaseAdmin.auth().createCustomToken(userRecord.uid);
return {
message: 'Email successfully verified',
token: customToken,
};
} catch (error) {
throw new HttpException(error.message || 'Failed to verify email', HttpStatus.BAD_REQUEST);
}