36 lines
1,009 B
TypeScript
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)
|