Fix Google Login CORS and role-based redirection
This commit is contained in:
@ -50,6 +50,14 @@ const handleLogin = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
const navigateByUserRole = (role: string) => {
|
||||
const r = role.toUpperCase()
|
||||
if (r === 'ADMIN') router.push('/admin')
|
||||
else if (r === 'DRIVER') router.push('/driver')
|
||||
else if (r === 'PROMOTER') router.push('/promoter')
|
||||
else router.push('/map')
|
||||
}
|
||||
|
||||
const handleGoogleLogin = async () => {
|
||||
isLoading.value = true
|
||||
errorMessage.value = ''
|
||||
@ -63,11 +71,17 @@ const handleGoogleLogin = async () => {
|
||||
const response = await authService.googleLogin(token)
|
||||
console.log('Backend Google login exitoso:', response)
|
||||
authStore.login(response.access_token, response.role, response.full_name)
|
||||
router.push('/map')
|
||||
|
||||
// Navigate based on actual role from backend
|
||||
navigateByUserRole(response.role)
|
||||
}
|
||||
} catch (error: any) {
|
||||
console.error('Error Google Login:', error)
|
||||
errorMessage.value = `Error con Google: ${error.message || 'Error desconocido'}`
|
||||
if (error.response?.data?.detail) {
|
||||
errorMessage.value = `Error: ${error.response.data.detail}`
|
||||
} else {
|
||||
errorMessage.value = `Error con Google: ${error.message || 'Error desconocido'}`
|
||||
}
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
}
|
||||
|
||||
@ -54,7 +54,7 @@ const handleRegister = async () => {
|
||||
|
||||
// Redirigir casi de inmediato
|
||||
setTimeout(() => {
|
||||
router.push('/map')
|
||||
navigateByUserRole(response.role)
|
||||
}, 1000)
|
||||
|
||||
} catch (error: any) {
|
||||
@ -71,6 +71,14 @@ const handleRegister = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
const navigateByUserRole = (role: string) => {
|
||||
const r = role.toUpperCase()
|
||||
if (r === 'ADMIN') router.push('/admin')
|
||||
else if (r === 'DRIVER') router.push('/driver')
|
||||
else if (r === 'PROMOTER') router.push('/promoter')
|
||||
else router.push('/map')
|
||||
}
|
||||
|
||||
const handleGoogleRegister = async () => {
|
||||
isLoading.value = true
|
||||
errorMessage.value = ''
|
||||
@ -82,7 +90,7 @@ const handleGoogleRegister = async () => {
|
||||
|
||||
if (token) {
|
||||
const response = await authService.googleLogin(token)
|
||||
console.log('Backend Google login exitoso:', response)
|
||||
console.log('Backend Google login/register exitoso:', response)
|
||||
|
||||
analyticsService.logEvent({
|
||||
event_name: 'sign_up',
|
||||
@ -90,12 +98,18 @@ const handleGoogleRegister = async () => {
|
||||
})
|
||||
|
||||
authStore.login(response.access_token, response.role, response.full_name)
|
||||
router.push('/map')
|
||||
|
||||
// Navigate based on actual role from backend
|
||||
navigateByUserRole(response.role)
|
||||
}
|
||||
|
||||
} catch (error: any) {
|
||||
console.error('Error Google Register:', error)
|
||||
errorMessage.value = `Error con Google: ${error.message || 'Intenta de nuevo'}`
|
||||
if (error.response?.data?.detail) {
|
||||
errorMessage.value = `Error: ${error.response.data.detail}`
|
||||
} else {
|
||||
errorMessage.value = `Error con Google: ${error.message || 'Intenta de nuevo'}`
|
||||
}
|
||||
} finally {
|
||||
isLoading.value = false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user