CORS

Когда мы выпускаем наш сервер в свет, для тестов или в боевом режиме, нам нужно настроить параметры доступа: с каких url могут идти запросы, какие методы и какие заголовки они могут содержать. Это своего рода правила, которые должны соответствовать при общении фронта и бэка. Установим пакет:

NPM:

npm i -s fastify-cors

YARN:

yarn add fastify-cors

Зарегистрируем в плагинах fastify:

fastify.register(require('fastify-cors'), {
    origin: "*",
    methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
    allowedHeaders: ['Content-Type', 'Authorization']
})

Всего 3 параметра: origin – это все url, которые смогут получить доступ к нашему backend'у. Может содержать как url, так и знак "*". Также можно перечислить несколько url. "*" – любые url; "www.example.ru" – доступ только с www.example.ru; ["www.example.ru", "www.testing.ru"] доступ с www.example.ru и www.testing.ru. methods содержит в себе массив строк с методами. Нужно указать те методы, которыми вы пользуетесь на сервере + "OPTIONS". allowedHeaders – содержит массив параметров, которые у вас будут в запросах из фронта. Там, где мы делали проверку подписи параметров запуска, мы передавали эти параметры в заголовке Authorization, поэтому мы включили его в список. Всё, больше проблем с доступом к серверу извне быть не должно.

Last updated

Was this helpful?