【发布时间】:2019-07-26 04:45:10
【问题描述】:
我有一个 Django 项目,最终将包含三个应用程序。其中两个是“普通”的 Django 应用程序,第三个是 djangorestframework 应用程序。我还计划在某个时候为该项目创建一个桌面客户端。
我希望其余应用程序成为与数据库通信的唯一实体。因此,我使用requests 从“普通”Django 应用程序的视图中与其余端点进行通信,我将对桌面客户端执行相同的操作。
我希望所有应用程序都只能供经过身份验证的用户访问,所以我'正在使用 Django 的身份验证后端。
我的问题是,当在视图中使用 requests 时,如何将经过身份验证的用户/会话从纯 Django 应用程序传递到其余端点。
我设法使用request 的HTTPBasicAuth 在其余API 上进行身份验证,但这需要我手头有明文形式的用户密码。当然,我可以创建一个技术用户来执行这些请求。但这也意味着每个请求都需要先通过身份验证,这感觉不是最好的方法。
我试图从提供给视图的request 对象中提取会话cookie,并通过requests.get 传递它,但未能以正确的方式将其放入requests.get 调用中。
到目前为止,使用请求和已建立的会话似乎是我最好的选择,尤其是因为桌面客户端也将采用这种方式。因此,我目前正在寻找向requests.get 提供会话cookie 的正确方法,但我当然愿意寻求更好的解决方案。
【问题讨论】:
标签: python django django-rest-framework python-requests