我对 django Rest 开发有几个问题。我正在构建项目,后端使用 DRF、wsgi、ngnix,前端使用 Reactjs。
问题:
1)除 react 前端之外的用户和其他服务的 block 端点:
我们有这样的情况:现在每个人都可以从端点获取数据,如果他或她写了正确的 url 地址。我该如何阻止呢。所以目标是现在人们可以看到它,只有 react
2)如何设置ngnix,无论django api在哪里,ngnix都会在react中提供前端服务?
谢谢
最佳答案
你无法保护它,这只是让普通乔的生活变得更加困难而已。一些可供探索的选项:使用 CSRF token ,检查Referer HTTP header ,仅对经过身份验证的用户可用(通过电子邮件、验证码、信用卡等注册),通过 IP(+浏览器指纹)进行限制和黑名单,没有限制。
您是否询问如何将您的 react 源移出 django 的
/static/
文件夹?您可以直接将前端文件夹映射到 nginx 中,这样您就不会使用collectstatic
不再部署,只需直接链接模板中的前端 url<script src='/frontend/react.js'></script>
(如果需要,您可以从其他服务器加载它)。server { listen 80; # where django static files are, like for admin app location /static { alias /var/www/static; } # where your frontend js files are location /frontend { alias /home/user/frontend; } # regular uwsgi location / { uwsgi_pass unix:/home/user/app.sock; include uwsgi_params; } }
关于django、react js、nginx : deploy prosses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36958907/