【发布时间】:2016-04-21 09:52:02
【问题描述】:
我有一个带有受保护端点的 DRF API,它根据用户有权访问的内容返回过滤数据。
我有一个单独的 Django OAuth2 提供程序,其中包含用户模型和确定用户有权访问什么所需的值。
用户应该能够通过 DRF API 上的登录端点进行身份验证。 API 反过来代表用户从 Oauth2 提供程序获取令牌,并进行几次调用以获取允许用户访问的资源列表。
理想情况下,DRF API 会生成一个令牌并将其返回给用户。每当用户使用令牌发出后续请求(登录后)时,API 将能够通过调用 Oauth 提供程序返回的值过滤结果。
问题是如何存储这些信息。这感觉类似于在匿名用户会话中存储数据,但使用请求标头而不是 cookie。我考虑过推出 django.contrib.sessions.middleware.SessionMiddleware 的自定义版本,但我更喜欢使用已建立的方法而不是编写自定义代码,因为这似乎不是一个独特的问题。
重申一下:是否可以创建匿名用户会话,在其中存储信息,然后通过请求标头而不是 cookie 检索会话?
【问题讨论】:
标签: django session authentication oauth django-rest-framework