【问题标题】:OkHttp POST request set withCredentials to True?OkHttp POST 请求设置 withCredentials 为 True?
【发布时间】:2019-12-04 00:22:15
【问题描述】:

无法通过 Django Rest Framework 令牌授权,因为我无法使用 OkHttp RequestBuilder 设置 withCredentials=true。 (我指的是这个https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials

在 javascript 中使用 axios.post 这工作正常。我无法使用 OkHttp 请求生成器将此发布请求转换为 android。

请求生成器似乎只为请求的 Header 和 Body 提供 setter 方法?

尝试阅读 OkHttp 文档,我也尝试将 withCredentials=True 作为标题发送

Django Rest Framework 后端无法识别令牌,也无法将不记名令牌解析给用户。

如果没有类进行身份验证,request.user 将设置为 django.contrib.auth.models.AnonymousUser 的实例 >,request.auth > 将设置为 None

【问题讨论】:

标签: android post csrf okhttp django-csrf


【解决方案1】:

我在这里假设withCredentials 是一个查询参数。 附加?withCredentials=true。到 URL 的末尾可能会让事情顺利进行。

完整的示例可能类似于 https://www.example.com?withCredentials=true

如果有多个参数,它可能看起来像https://www.example.com?withCredentials=true&otherParam=Stuff

【讨论】:

  • 嘿,Matt,withCredentials 是 XHR 属性,表示使用 CSRF 令牌/cookie developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/…。我的理解也是,不建议在 POST 请求中使用查询字符串参数——它应该只用于 GET 请求。
  • 我的错误。我对 XHR 不太熟悉。
猜你喜欢
  • 2020-05-21
  • 1970-01-01
  • 2017-03-25
  • 2015-08-06
  • 2015-12-20
  • 2018-04-28
  • 2019-05-07
  • 2017-03-10
相关资源
最近更新 更多