#laravel #vue.js #nuxt.js
#laravel #vue.js #nuxt.js
Вопрос:
У меня есть отдельный сервер и интерфейс. Однако они выполняются на одном сервере (это может измениться в будущем). Серверная часть служит в качестве API и работает на Laravel. Интерфейс от Nuxt (Vue).
Я бы хотел, чтобы только мое приложение Nuxt могло получить доступ к API. Как я могу настроить Laravel на возврат данных только в том случае, если запрос поступает из приложения Nuxt?
Я думал о добавлении специального токена к запросам, но пользователь сможет проверить, какой запрос поступает, и захватить токен. Кто-нибудь может дать мне идеи, как это можно решить?
Комментарии:
1. Вы можете взглянуть на cors, для lavarel есть этот пакет: github.com/fruitcake/laravel-cors
2. @dreijntjens CORS не запрещает никому напрямую обращаться к URL-адресу, это не то, для чего он предназначен
Ответ №1:
Вы должны знать о CORS. Итак, на вашем сервере Laravel разрешайте запросы только из домена внешнего интерфейса сервера следующим образом:
Access-Control-Allow-Origin: https://www.example.com
Ответ №2:
Самым простым решением было бы добавить serverMiddleware в проект nuxt и направлять все запросы к «реальному» api через него. Клиенты попадут во внутренний nuxt api и не смогут увидеть фактический запрос, сделанный к реальному API. Там вы также можете добавить токен, о котором вы говорите, для дополнительного уровня безопасности.
Комментарии:
1. Не могли бы вы, пожалуйста, показать какой-нибудь простой пример? Потому что я действительно не знаю, как это использовать