Fixed auth middleware

This commit is contained in:
Umar Adilov 2025-05-03 14:00:59 +05:00
parent dd72be5ad8
commit 5cdcb8bb02
4 changed files with 33 additions and 31 deletions

View File

@ -14,7 +14,6 @@ const routeHandler = async (req: NextRequest) => {
.merge(z.object({ type: z.enum(['bonus', 'corporate']) }))
.parse(body);
try {
const oriyoResponse = await oriyoClient.get('/client/login', {
params: {
type: validatedBody.type,
@ -23,24 +22,21 @@ const routeHandler = async (req: NextRequest) => {
},
});
const parsedResponse = JSON.parse(oriyoResponse.data);
if (!parsedResponse.token) {
if (oriyoResponse.data.error)
return NextResponse.json({ error: 'Credentials error' }, { status: 401 });
}
const response = NextResponse.json({ success: true });
response.cookies.set(`${validatedBody.type}__token`, oriyoResponse.data, {
response.cookies.set(
`${validatedBody.type}__token`,
JSON.stringify(oriyoResponse.data),
{
path: '/',
maxAge: 2 * 60 * 60,
});
},
);
return response;
} catch (error) {
console.error('login error:', error);
return NextResponse.json({ error: 'Server error' }, { status: 500 });
}
};
export const POST = validationErrorHandler(routeHandler);

View File

@ -21,7 +21,6 @@ const routeHandler = async (req: NextRequest, requestCookie: RequestCookie) => {
});
};
export const GET = authorizationMiddleware(
validationErrorHandler(routeHandler),
'bonus__token',
export const GET = validationErrorHandler(
authorizationMiddleware(routeHandler, 'bonus__token'),
);

View File

@ -1,4 +1,5 @@
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';
import { has } from 'lodash';
import { toast } from 'sonner';
const baseQuery = fetchBaseQuery({
@ -22,8 +23,16 @@ export const baseAPI = createApi({
if (result.error) {
switch (result.error.status) {
case 401:
if (
has(result.error.data, 'error') &&
result.error.data.error === 'Credentials error'
) {
toast.error('Login credentials error');
break;
}
window.location.href = '/login';
break;
case 500:
toast.error('Server error, please try later');

View File

@ -1,6 +1,6 @@
'use client';
import { format, subMonths } from 'date-fns';
import { format } from 'date-fns';
import { ru } from 'date-fns/locale';
import { CalendarIcon } from 'lucide-react';
import { useEffect, useState } from 'react';
@ -8,7 +8,7 @@ import { useEffect, useState } from 'react';
import {
TransactionRequest,
TransactionResponse,
} from '@/entities/bonus/model/types/bonus-client-info.type';
} from '@/entities/transactions/model/types';
import { useTextController } from '@/shared/language/hooks/use-text-controller';
import { Button } from '@/shared/shadcn-ui/button';
@ -46,10 +46,8 @@ export const TransactionsTable = ({
data,
onChange,
}: TransactionsTableProps) => {
const [startDate, setStartDate] = useState<Date | undefined>(
subMonths(new Date(), 1),
);
const [endDate, setEndDate] = useState<Date | undefined>(new Date());
const [startDate, setStartDate] = useState<Date | undefined>(undefined);
const [endDate, setEndDate] = useState<Date | undefined>(undefined);
const [currentPage, setCurrentPage] = useState(1);
const [itemsPerPage, setItemsPerPage] = useState(10);