【问题标题】:Authenticate a user on a GET API end point在 GET API 端点上对用户进行身份验证
【发布时间】:2014-11-24 01:14:46
【问题描述】:

问题

我有一个带有 GET 端点的 Django REST API,我想限制对管理员用户的访问。这可以通过指定来完成

permission_classes = (IsAdminUser,)

在视图中。

现在我正在尝试使用 Postman 测试这个端点,但我遇到了 2 个问题:

  1. 它不起作用,我收到一条消息,显示 “未提供身份验证凭据。”
  2. 我的凭据在 URL 中明显发送(因为这是一个 GET 端点)

问题

为什么我在使用 Postman 时无法从终点得到预期的答案?如果我使用curl <my_url> -u <user>:<password>,我会收到我想要的。

如何在隐藏关键凭据的同时保持我的 API 有意义(即,当端点的目标是检索数据时不使用 POST)?

【问题讨论】:

    标签: django api django-rest-framework


    【解决方案1】:

    为什么要在 URL 中传递身份验证详细信息?您在 POSTMAN 中有一个 Basic Auth 部分,您可以在其中放置登录凭据。然后 POSTMAN 将为您设置正确的标题。

    记得在 DRF 视图或设置中将 BasicAuthentication 设置为您的身份验证类。

    【讨论】:

    • 是的,你是对的,我不知道这些凭据应该在标头中发送。现在BasicAuthenticationSessionAuthentication 有什么区别?如何在 API 使用者中构建我的 AJAX 调用?
    猜你喜欢
    • 2016-07-28
    • 2014-03-17
    • 2019-07-13
    • 1970-01-01
    • 2019-11-10
    • 2021-08-11
    • 1970-01-01
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多