6

我有一个网站允许使用 django-social-auth 进行 Facebook 身份验证

现在我还需要使用非基于 cookie 的 API 进行身份验证。我的想法是包含一个“sessionid=”作为 POST 字段(它将使用 HTTPS)。到目前为止,我设法“愚弄”了 django 来访问这个 sessionid,就好像它是一个 cookie 一样(我基本上在中间件中做了类似 request.COOKIES['sessionid'] = request.POST['sessionid'] 的事情)。

我的问题是如何在用户通过身份验证后立即将 sessionid 提供给用户。据我所知,facebook 为用户提供了一个“访问令牌”,然后将其发送到 /complete/facebook/ ,由 django-social-auth 处理并返回一个包含“sessionid”的“Set-cookie”标头钥匙。但不是那样,我需要它将 sessionid 键作为页面内容中的 json 返回(API 客户端无法读取 http 响应标头)。

4

1 回答 1

1

似乎是一个挑战。但也许您可以使用一个保存信号来触发带有所需 JSON 的 Comet 事件。作为起点,django-social-auth 文档的旧版本似乎提到了信号。

https://django-social-auth.readthedocs.org/en/v0.7.1/signals.html

然而,更好的方法可能是一起跳过 django-social-auth 并使用 python social auth。文档本身说:“注意:此库已弃用,有利于 python-social-auth。”

于 2015-04-01T18:49:05.937 回答