#136: EMail Auth on different browsers ...
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
import { CommonModule } from '@angular/common';
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute, RouterModule } from '@angular/router';
|
||||
import { ActivatedRoute, Router, RouterModule } from '@angular/router';
|
||||
import { environment } from '../../../environments/environment';
|
||||
import { AuthService } from '../../services/auth.service';
|
||||
import { UserService } from '../../services/user.service';
|
||||
@@ -16,7 +16,7 @@ export class EmailAuthorizedComponent implements OnInit {
|
||||
verificationStatus: 'pending' | 'success' | 'error' = 'pending';
|
||||
errorMessage: string | null = null;
|
||||
|
||||
constructor(private route: ActivatedRoute, private http: HttpClient, private authService: AuthService, private userService: UserService) {}
|
||||
constructor(private route: ActivatedRoute, private router: Router, private http: HttpClient, private authService: AuthService, private userService: UserService) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
const oobCode = this.route.snapshot.queryParamMap.get('oobCode');
|
||||
@@ -32,12 +32,32 @@ export class EmailAuthorizedComponent implements OnInit {
|
||||
}
|
||||
|
||||
private verifyEmail(oobCode: string, email: string): void {
|
||||
this.http.post(`${environment.apiBaseUrl}/bizmatch/auth/verify-email`, { oobCode, email }).subscribe({
|
||||
next: async () => {
|
||||
this.http.post<{ message: string; token: string }>(`${environment.apiBaseUrl}/bizmatch/auth/verify-email`, { oobCode, email }).subscribe({
|
||||
next: async response => {
|
||||
this.verificationStatus = 'success';
|
||||
//await this.authService.refreshToken();
|
||||
await this.authService.refreshUserClaims();
|
||||
const user = await this.userService.getByMail(email);
|
||||
|
||||
try {
|
||||
// Use the custom token from the server to sign in with Firebase
|
||||
await this.authService.signInWithCustomToken(response.token);
|
||||
|
||||
// Try to get user info
|
||||
try {
|
||||
const user = await this.userService.getByMail(email);
|
||||
console.log('User retrieved:', user);
|
||||
} catch (userError) {
|
||||
console.error('Error getting user:', userError);
|
||||
// Don't change verification status - it's still a success
|
||||
}
|
||||
|
||||
// Redirect to dashboard after a short delay
|
||||
setTimeout(() => {
|
||||
this.router.navigate(['/account']);
|
||||
}, 5000);
|
||||
} catch (authError) {
|
||||
console.error('Error signing in with custom token:', authError);
|
||||
// Keep success status for verification, but add warning about login
|
||||
this.errorMessage = 'Email verified, but there was an issue signing you in. Please try logging in manually.';
|
||||
}
|
||||
},
|
||||
error: err => {
|
||||
this.verificationStatus = 'error';
|
||||
|
||||
Reference in New Issue
Block a user