【问题标题】:DRF when generating cookie sessionid生成 cookie sessionid 时的 DRF
【发布时间】:2020-03-18 21:06:43
【问题描述】:

我正在我的 Django Rest Framework 站点上创建 /auth/ 页面。而且我无法保存会话 ID。

我是创建这个 cookie 还是自动创建它? 我的授权观点:

class AuthView(APIView):
permission_classes = (permissions.AllowAny,)

renderer_classes = [TemplateHTMLRenderer]

@csrf_exempt
def get(self, request):
    return render(request, 'login.html', {})

@csrf_exempt
def post(self, request):

    serializer = AuthFormSerializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    data = serializer.data
    username = data.get('username')
    password = data.get('password')

    if username is None or password is None:
        return Response({'error': 'Please provide both username and password'},
                        status=HTTP_400_BAD_REQUEST, template_name='login.html')
    user = authenticate(username=username, password=password)

    if not user:
        return Response({'error': 'Invalid Credentials'},
                        status=HTTP_404_NOT_FOUND, template_name='login.html')
    self.token, _ = Token.objects.get_or_create(user=user)
    user_token = Token.objects.get(user_id = user.pk)


    if (datetime.now() - user_token.created.replace(tzinfo=None)).days > 10:
        Token.objects.update(user_id=user.pk, key=Token.generate_key(user.pk), created = datetime.now())

    context = {'token': self.token.key}
    # return Response(, status=HTTP_201_CREATED, template_name='')
    return HttpResponse(json.dumps(context), content_type="application/json")

【问题讨论】:

    标签: python django session


    【解决方案1】:

    我忘了写login(request, user),不要重复我的错误xD

    【讨论】:

    • 刚刚也被我发现了。谢谢!
    猜你喜欢
    • 2019-05-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 2011-07-11
    • 2013-01-01
    相关资源
    最近更新 更多