【发布时间】:2015-10-31 08:15:46
【问题描述】:
我需要 Django Rest 和 Social Auth 方面的帮助......我有一个视图和下一个结构......
class ObtainAuthTokenFacebook(APIView):
parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,)
renderer_classes = (renderers.JSONRenderer,)
serializer_class = AuthTokenSerializer
def post(self, request, backend):
serializer = self.serializer_class(data=request.DATA)
user = register_by_access_token(request, backend)
这是我登录的功能......
from django.contrib.auth import login
@psa('social:complete')
def register_by_access_token(request, backend, *args, **kwargs):
access_token = request.data.get('token')
user = request.backend.do_auth(access_token)
if user:
login(request, user)
return user
else:
return 'ERROR'
当在我看来发送响应时......我的前端收到这个......
HTTP/1.0 200 OK
Date: Fri, 07 Aug 2015 18:53:31 GMT
Server: WSGIServer/0.1 Python/2.7.9
Vary: Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Allow: POST, OPTIONS
Set-Cookie: csrftoken=PZHraHwhFsog2eT6n5psckJBfFEPmPQR; expires=Fri, 05-Aug-2016 18:53:31 GMT; Max-Age=31449600; Path=/
Set-Cookie: sessionid=nhxbh9slhw3pw887necskqfohczkzxo3; expires=Fri, 21-Aug-2015 18:53:31 GMT; httponly; Max-Age=1209600; Path=/
但是....我现在使用 ios 和 ios 保存第一个请求的 cookie...,当我发送相同的请求时,cookie 粘贴在我的标头中...。服务器响应一个403 ....这是因为代码具有这样的结构,我的请求发送csrftoken和一个sessionid ..
当请求到达服务器时,这会拒绝这个请求...
我如何在后端管理 csrf 令牌......以避免拒绝未来的请求......
【问题讨论】:
标签: python django rest django-csrf