无法通过Android前端检索Django view设置的CSRF cookie

2024-06-25 06:54:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Koush的Ion从一个URL获取cookie,这个URL是我的Django web应用程序的一个端点。在

String urlStr = "http://example.herokuexampleapp.com/registration_id/";
URL url = null;
try {
url = new URL(urlStr);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(),    url.getPort(), url.getPath(), url.getQuery(), url.getRef());
List<HttpCookie> cookielist =    Ion.getDefault(getApplicationContext()).getCookieMiddleware().getCookieManager().getCookieStore()
        .get(uri);
Log.e("cookielist",""+cookielist.toString());
String csrfToken = "";
for (HttpCookie cookie : cookielist) {
    if (cookie.getName().equals("csrftoken")) {
        csrfToken =  cookie.getValue();

    }

} 

这段代码很好地运行了一段时间。但过了一段时间,它就自动停止检测任何饼干了!即使在向Django视图中添加了send csrf_cookie装饰器(以防它跳过它),这个问题也没有得到修复。在

所以我的问题是:为什么CSRF cookies会消失,有什么可靠的方法可以确保cookie的检索?如果这个cookie retreval方法不合适,那么获得csrf令牌进行请求身份验证的最佳选择是什么?在

另外,我不想使用ApacheHttpClient和其他类。它们不再受支持。在


Tags: django方法urlnewstringcookieuricsrf