Auth: nombre por defecto 'Ricardo Gonzalez' + persistencia en localStorage
- Si KAPPA no devuelve first_name/last_name, usa 'Ricardo Gonzalez' - user se persiste en localStorage (kappa_user) y sobrevive refrescos
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
+15
-3
@@ -3,9 +3,18 @@ import { ref, computed } from 'vue'
|
|||||||
import { kappa } from '@/services/kappa-api'
|
import { kappa } from '@/services/kappa-api'
|
||||||
import type { KappaLoginPayload } from '@/types/kappa'
|
import type { KappaLoginPayload } from '@/types/kappa'
|
||||||
|
|
||||||
|
function loadUser(): { name: string; email: string } | null {
|
||||||
|
const raw = localStorage.getItem('kappa_user')
|
||||||
|
return raw ? JSON.parse(raw) : null
|
||||||
|
}
|
||||||
|
|
||||||
|
function saveUser(user: { name: string; email: string }) {
|
||||||
|
localStorage.setItem('kappa_user', JSON.stringify(user))
|
||||||
|
}
|
||||||
|
|
||||||
export const useAuthStore = defineStore('auth', () => {
|
export const useAuthStore = defineStore('auth', () => {
|
||||||
const token = ref<string | null>(localStorage.getItem('kappa_token'))
|
const token = ref<string | null>(localStorage.getItem('kappa_token'))
|
||||||
const user = ref<{ name: string; email: string } | null>(null)
|
const user = ref<{ name: string; email: string } | null>(loadUser())
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const error = ref<string | null>(null)
|
const error = ref<string | null>(null)
|
||||||
|
|
||||||
@@ -16,11 +25,13 @@ export const useAuthStore = defineStore('auth', () => {
|
|||||||
error.value = null
|
error.value = null
|
||||||
try {
|
try {
|
||||||
const data = await kappa.login(payload)
|
const data = await kappa.login(payload)
|
||||||
token.value = kappa['token'] // sync with the service instance
|
token.value = kappa['token']
|
||||||
|
const name = `${data.user?.first_name || ''} ${data.user?.last_name || ''}`.trim()
|
||||||
user.value = {
|
user.value = {
|
||||||
name: `${data.user?.first_name || ''} ${data.user?.last_name || ''}`.trim(),
|
name: name || 'Ricardo Gonzalez',
|
||||||
email: payload.email,
|
email: payload.email,
|
||||||
}
|
}
|
||||||
|
saveUser(user.value)
|
||||||
return true
|
return true
|
||||||
} catch (e: any) {
|
} catch (e: any) {
|
||||||
error.value = e.message
|
error.value = e.message
|
||||||
@@ -34,6 +45,7 @@ export const useAuthStore = defineStore('auth', () => {
|
|||||||
kappa.logout()
|
kappa.logout()
|
||||||
token.value = null
|
token.value = null
|
||||||
user.value = null
|
user.value = null
|
||||||
|
localStorage.removeItem('kappa_user')
|
||||||
}
|
}
|
||||||
|
|
||||||
return { token, user, loading, error, isAuthenticated, login, logout }
|
return { token, user, loading, error, isAuthenticated, login, logout }
|
||||||
|
|||||||
Reference in New Issue
Block a user