} from 'nookies';
interface IError extends Error {
status: number;
message: string;
}
const http = async <T>(path: string, config: RequestInit): Promise<T> => {
const { access } = parseCookies();
const request = new Request(path, {
credentials: 'include',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
Authorization: access && WatchDog ${access}
},
...config
});
const response: Response | IError = await fetch(request);
if (!response.ok) {
throw new Error(
status: ${response.status}, message: ${response.statusText}
);
}
return response.json().catch(() => ({}));
};
export async function get<T>(path: string, config?: RequestInit): Promise<T> {
const init = { method: 'GET', ...config };
return await http<T>(path, init);
}
export async function post<T, U>(
path: string,
body: T,
config?: RequestInit
): Promise<U> {
const init = {
method: 'POST',
body: JSON.stringify(body),
...config
};
return await http<U>(path, init);
}
import * as fetch from '@/api/http';
export async function middleware(request: NextRequest) {
const access = await request.cookies.get('access')?.value;
if (!access) return NextResponse.redirect(new URL('/sign-in', request.url))
const tokenValid = await fetch.post<any, Response>(
${process.env.public_api}/token/verify/,
{access}
);
}
Всё встало на свои места)
тыб хотя бы обернул в ковычки
того
меня?
если ты об этом, то осталось только помолиться
а что такое WatchDog?
а кому именно?
Игра от Ubisoft
Нет у них такой игры
есть, даже 3 части вышло
Мой пездюк
https://www.ubisoft.com/en-gb/game/watch-dogs/watch-dogs
Какое название у игры?
если ты про букву S, то погоды это не делает)
Делает. Я душнила)
fetch.post? Это че за прикол
в чем прикол?
У фетча метод задается во втором параметре с ключем method
ляг передохни брат
ты пропустил то т оя писал чуть выше. ты посмотрел последний скрин и такой ну и ебач это чувак
https://github.com/node-fetch/node-fetch/blob/main/src/request.js
import * as fetch from '@/api/http'; export async function middleware(request: NextRequest) { const access = await request.cookies.get('access')?.value; if (!access) return NextResponse.redirect(new URL('/sign-in', request.url)) const tokenValid = await fetch.post<any, Response>( ${process.env.public_api}/token/verify/, {access} ); }
а что такое @/api/http?
та в нексте свой фетч ест ьс ревалидацией кешем и тд. типа смысл юзать сторонее для 3 запросов
так ты дай входные параметры
ты не достучишься. оно из под впн только работает
у тебя 400 в каком месте вылетает?
Обсуждают сегодня