48 lines
1.3 KiB
TypeScript
48 lines
1.3 KiB
TypeScript
'use server';
|
|
|
|
// 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) => {
|
|
try {
|
|
const response = await refreshApi.post('/auth/sign-out', { user_id });
|
|
|
|
const parsed = logoutResponseSchema.safeParse(response.data);
|
|
|
|
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');
|
|
};
|