我目前正在构建一个网络应用程序。
我的前端是使用React和Axios(用于API调用请求)开发的。 它直接由 Nginx 在 app.mydomain.com
我的后端是使用Django和Django Rest开发的。 它与 Nginx 和 Gunicorn 一起在 api.mydomain.com 上提供服务。它仅服务 API 端点。
所以前端和后端是分离的。
我希望只有我的前端 (app.mydomain.com) 能够向我的 Django Rest 后端发出 API 请求。
我想阻止任何其他域、任何客户端,例如邮递员、insomnia、curl 或任何脚本向我的后端发出 API 请求。
我已经在 Django Rest 中设置了 CORS。但是,我仍然可以使用curl或任何其他客户端向后端发出请求。
您知道我可以做些什么来实现这一目标吗?
提前非常感谢您的回答。
步骤:
1.
python -m pip install django-cors-headers
2.
INSTALLED_APPS = [ ..., "corsheaders", ..., ] #add it to your installed apps:
3.#添加一个中间件类来监听响应,
MIDDLEWARE = [ ..., "corsheaders.middleware.CorsMiddleware", "django.middleware.common.CommonMiddleware", ..., ]
4.
CORS_ALLOWED_ORIGINS = [ "https://api.mydomain.com", ]
就是这样!