monitoring-app/src/packages/administrativo/services/User/UserLoginService.ts

36 lines
1,009 B
TypeScript

'use server';
import { cookies } from 'next/headers';
import { UserLoginData } from '../../data/User/UserLoginData';
import { redirect } from 'next/navigation';
import { withClientErrorHandler } from '@/withClientErrorHandler/withClientErrorHandler';
async function executeUserLoginService(form: any) {
// Obtem a resposta da requisição
const response = await UserLoginData(form);
// Verifica se localizou o usuário
if (response.data.user_id <= 0) {
return {
code: 404,
message: 'Não foi localizado o usuário',
};
}
// Importação do manipulador de cookies
const cookieStore = await cookies();
// Cria um novo cookie
cookieStore.set('access_token', response.data.token, {
httpOnly: true,
secure: process.env.NODE_ENV === 'production',
sameSite: 'strict',
path: '/',
maxAge: 60 * 60 * 24,
});
// Redireciona para a págian desejada
redirect('/user');
}
export const UserLoginService = withClientErrorHandler(executeUserLoginService)