Fastify - No Authorization was found in request.headers
-
Кароче, попробовал я этот ваш Fastify, бля ну все шло гладко, уже там и репозитории и логику в сервисах прикрути.
Дело дошло до регистрации и авторизации пользователей. И тут начались проблемы, эта дура по непонятным мне приничал нихуя не регистрирует заголовок
Authentication
.
Кстати вfastify.d.ts
я тоже все четко прописал по инструкции:import 'fastify'; declare module 'fastify' { interface FastifyInstance { authenticate: (request: FastifyRequest, reply: FastifyReply) => Promise<void>; } }
Так вот эта сука, отдает токен можно посмотреть в
fastifyInstance.post('/token'...
Казалось бы заебись, но по непонятным мне причинам не записывает нихуя в заголовокAuthentication
, я уже и так и сяк, но не пойму почему.Вынес пока все дерьмище в index.ts, может подскажет кто нибудь в чем может быть причина ? Молю
import fastifyInstance from "./infrastructure/server/fastify"; import { registerRoutes } from "./app/app-module"; import { dataSourceInit } from "./infrastructure/lib/db/postgresql/connect-typeorm"; import fastifyFormbody from "@fastify/formbody"; import fastifyJwt from "@fastify/jwt"; import fp from 'fastify-plugin'; (async () => { try { fastifyInstance.register(fastifyFormbody); const authenticate = fp(async function (instance, opts) { instance.register(fastifyJwt, { secret: 'super-strong-secret', sign: { expiresIn: '7d' } }); instance.decorate('authenticate', async function (request, reply) { try { console.log('Authorization header:', request.headers.authorization); await request.jwtVerify(); console.log('User verified:', request.user); } catch (err) { console.log('Authentication error:', err); reply.send(err); } }); }); fastifyInstance.register(authenticate); fastifyInstance.post('/token', async (request, reply) => { const user = "user=exampleUser" if (!user) { reply.code(400).send({ error: 'User is required' }); } const token = fastifyInstance.jwt.sign({ user }); return { token }; }); fastifyInstance.get('/', { onRequest: fastifyInstance.authenticate }, async function (request, reply) { console.log(request.user); return request.user; }); fastifyInstance.get("/protected", { onRequest: fastifyInstance.authenticate }, async (request, reply) => { try { return { message: "You are authenticated!", user: request.user }; } catch (err) { return { message: "хуй за щеку" }; } }); fastifyInstance.register(registerRoutes); await fastifyInstance.listen({ port: 3009 }); fastifyInstance.ready((err) => { dataSourceInit(); if (err) { fastifyInstance.log.error(err); process.exit(1); } else { const address = fastifyInstance.server.address(); if (typeof address === "string") { console.log(`Fastify прослушивание сокета ${address}`); } else { console.log(`Fastify прослушивание http://localhost:${address.port}`); } } }); } catch (err) { fastifyInstance.log.error(err); process.exit(1); } })();
-
Кароче решил проблему, все регистрировалось корректно - это я про регистрацию плагина и прочее.
Вообщем, я забывал передавать в заголовке сам токен когда проверял защищенные роуты
Проблема решена!)