【问题标题】:django-rest-framework testing when view classes are permission protected视图类受权限保护时的 django-rest-framework 测试
【发布时间】:2015-03-25 15:42:32
【问题描述】:

在 Django-Rest-Framework 中,当视图类被使用权限保护时

permissions_classes = [permissions.IsAuthenticated] 

什么是测试它的最佳方法。我有 django-rest-swagger 但为了测试功能,我需要将代码更改为以下测试

permissions_classes = [permissions.AllowAny] 

我很想找到一种从招摇 UI 传递用户令牌的方法。我也很想知道其他测试策略。

【问题讨论】:

  • 这取决于您使用的身份验证类型,例如 JWT 使用接受 jwt 令牌的 Authorization 标头。我不是 100% 大摇大摆,但例如邮递员可以模拟这个标头来测试经过身份验证的端点。仅使用 sessionauthentication 我不确定你会如何伪造

标签: django rest django-rest-framework swagger django-testing


【解决方案1】:

在 Django Rest Framework 中,有很多身份验证方案,因此根据您选择的一种,您的测试策略会发生变化。

例如,如果您使用 TokenAuthentication,则授权标头是可以的。

但是如果你使用 SessionAuthentication,你应该使用 django auth cookies。

我不知道 JWT,但是使用 django-webtest,这很容易做到。

使用django-rest-swagger,如果你的permission_classes是[permissions.IsAuthenticated],那么你可以在使用django-rest-swagger之前登录Django(设置auth cookies)

【讨论】:

  • 使用 JWT 时,令牌会通过标头发送。它不会保存在 cookie 中。因此,我无法登录到应用程序,然后使用相同的浏览器调出招摇。
  • 尝试(暂时)在您的 DRF 配置中启用 SessionAuthentication 以查看它是否有帮助(并登录您的 Django 帐户)
  • 前端是基于 Angular 的,只需要 JWT。即使我们将后端更改为基于会话,我们也不会登录系统。
猜你喜欢
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2014-05-10
  • 2014-07-06
  • 1970-01-01
相关资源
最近更新 更多