Cambios en refresh token para no dar error. No actualiza access token de la cookie/session. Elimina access token de la cookie para forzar cerrar la session en caso de error
This commit is contained in:
@@ -1,27 +1,47 @@
|
||||
'use server';
|
||||
|
||||
import { safeFetchApi } from '@/lib';
|
||||
// import { safeFetchApi } from '@/lib';
|
||||
import { refreshApi } from '@/lib/refreshApi'; // Importa la nueva instancia
|
||||
import { cookies } from 'next/headers';
|
||||
import { logoutResponseSchema } from '../schemas/logout';
|
||||
|
||||
export const logoutAction = async (user_id: string) => {
|
||||
const payload = { user_id };
|
||||
try {
|
||||
const response = await refreshApi.post('/auth/sign-out', { user_id });
|
||||
|
||||
const [error, data] = await safeFetchApi(
|
||||
logoutResponseSchema,
|
||||
'/auth/sign-out',
|
||||
'POST',
|
||||
payload,
|
||||
);
|
||||
const parsed = logoutResponseSchema.safeParse(response.data);
|
||||
|
||||
if (error) {
|
||||
console.error('Error:', error);
|
||||
// Devuelve un objeto con la propiedad 'type' para que el callback de NextAuth lo reconozca como un error
|
||||
return {
|
||||
type: 'API_ERROR',
|
||||
message: error.message,
|
||||
};
|
||||
if (!parsed.success) {
|
||||
console.error('Error de validación en la respuesta de refresh token:', {
|
||||
errors: parsed.error.errors,
|
||||
receivedData: response.data,
|
||||
});
|
||||
return null;
|
||||
}
|
||||
|
||||
return parsed.data;
|
||||
} catch (error: any) { // Captura el error para acceso a error.response
|
||||
console.error('Error al cerrar sesion:', error.response?.data || error.message);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
// const payload = { user_id };
|
||||
// const [error, data] = await safeFetchApi(
|
||||
// logoutResponseSchema,
|
||||
// '/auth/sign-out',
|
||||
// 'POST',
|
||||
// payload,
|
||||
// );
|
||||
|
||||
// if (error) {
|
||||
// console.error('Error:', error);
|
||||
// // Devuelve un objeto con la propiedad 'type' para que el callback de NextAuth lo reconozca como un error
|
||||
// return {
|
||||
// type: 'API_ERROR',
|
||||
// message: error.message,
|
||||
// };
|
||||
// }
|
||||
|
||||
(await cookies()).delete('refresh_token');
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user