所以我使用DRF JWT
进行身份验证。用户提交凭证,如果有效,则使用存储在sessionStorage
中的JWT进行响应。每当用户导航受保护的路由时,JWT /api/auth/refresh
都会刷新令牌(如果令牌仍然有效)。
无论如何,根据DRF,根据用户是否为IsAuthenticated
,从身份验证转移到受保护的路由,其中检索数据。问题是我很难弄清楚如何在没有用户提供凭证的情况下确定DRF中的IsAuthenticated
。我现在应该提一下,我正在和Postman一起测试。
API网址:
/api/help/questions
我认为:
class GetQuestionsAPIView(ListAPIView):
queryset = Help.objects.all()
serializer_class = GetQuestionsSerializer
permission_classes = [IsAuthenticated,]
序列化器是:
class GetQuestionsSerializer(ModelSerializer):
class Meta:
model = Help
fields = '__all__'
def validate(self, data):
return data
我有来自/api/auth/signin/
的有效令牌。我试图将其传递到/api/help/questions/
路线以检索问题列表。
GET /api/help/questions/
无法正常工作,因为它需要凭据。 Authentication credentials were not provided.
GET /api/help/questions/
Content-type: application/json
和'授权and the token in the header also says
未提供身份验证凭据。
可能它应该是POST
,因为我提交凭据并期望问题作为服务器响应,如果身份验证有效,但结果几乎相同。
我显然不是这方面最了解的人,所以任何帮助都会受到赞赏。
答案 0 :(得分:1)
您是否将令牌放入授权标头? 因此,在您登录后,您将获得一个令牌,您应该将其放在受保护网址请求的标题内,如下所示:
Authorization: JWT <your_token>
以下是使用curl
的示例:
curl -H "Authorization: JWT <your_token>" http://localhost:8000/protected-url/