#136: EMail Auth on different browsers ...
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user