【问题标题】:Authentication on Post DRFPost DRF 上的身份验证
【发布时间】:2018-04-21 15:33:55
【问题描述】:

我的 DRF 出现错误。当我尝试使用 post 方法进行身份验证时。

令牌对于管理员用户是正确的。当我使用安全方法时,它是成功的,但是使用 post 方法时,它不会进行身份验证

我的看法

class SpecialistListView(ListCreateAPIView):
    authentication_classes = (OAuth2Authentication,)
    permission_classes = (permissions.IsAdminUser,)
    queryset = Specialist.objects.all()
    serializer_class = SpecialistSerializer

我不明白为什么返回代码的状态是 HTTP 401 Unauthorized。

它不适用于测试。我检查邮递员是否成功。

我正在使用来自 rest_framework.test 导入 APIClient 的 APIClient

我的测试客户端

client = APIClient()
client.credentials(HTTP_AUTHORIZATION='Bearer EGsnU4Cz3Mx5bUCuLrc2hmup51sSGz')

class CreateSpecialist(APITestCase):
    fixtures = ['data','data2']
    def setUp(self):
        self.valid_payload = {
            'username': 'julia',
            'nick': 'julia',
            'password': 'intel12345',
            "first_name": "juliana",
            "last_name": "garzon"
        }

def test_create_specialist(self):
    response = self.client.post(
        reverse('specialists'),
        data=json.dumps(self.valid_payload),
        content_type='application/json'
    )
    self.assertEqual(response.status_code, status.HTTP_201_CREATED)

【问题讨论】:

    标签: django oauth oauth-2.0 django-rest-framework


    【解决方案1】:

    我只是在帖子之前添加凭据,它就可以工作! :D

    def test_create_specialist(self):
        self.client.credentials(HTTP_AUTHORIZATION='Bearer EGsnU4Cz3Mx5bUCuLrc2hmup51sSGz')
        response = self.client.post(
            reverse('specialists'),
            data=json.dumps(self.valid_payload),
            content_type='application/json'
        )
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-14
      • 2021-05-12
      • 2019-04-26
      • 2020-01-11
      • 2020-06-04
      • 2022-12-08
      • 2012-02-03
      • 1970-01-01
      相关资源
      最近更新 更多