Fixed auth middleware
This commit is contained in:
parent
dd72be5ad8
commit
5cdcb8bb02
@ -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);
|
||||
|
||||
@ -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'),
|
||||
);
|
||||
|
||||
@ -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');
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user