Chrome扩展程序和Django:验证是否允许第三方Cookie

用户名

我正在使用带有Cookie的Django身份验证。

我有一个Chrome扩展程序。当用户单击扩展按钮时,扩展将xmlHttp请求发送到my_site.com/cookie_test/

该URL附带的视图使用户知道他是否已登录my_site.com。(它也做其他事情。)

Content_script.js

function got_response(){ 
    if (xmlHttp.readyState == 4){
        alert(xmlHttp.responseText);  
    }
 }

var xmlHttp=new XMLHttpRequest();
xmlHttp.open("POST", "my_site.com/cookie_test/",true);
xmlHttp.onreadystatechange = got_response;
xmlHttp.send();

查看由my_site.com/cookie_test/调用的函数

@csrf_exempt
def cookie_test(request):
    if not request.user.is_authenticated():
        return HttpResponse("not logged in")
    else:
        return HttpResponse("logged in")

情况1:用户登录到my_site,并且浏览器允许第三方Cookie

结果:“已登录”正确

情况2:用户未登录

结果:“未登录”正确

情况3:用户已登录,但浏览器不允许第三方cookie

结果:“未登录”不正确

我的问题

如果用户的浏览器不允许第三方cookie,如何显示消息“更改cookie设置!”。换句话说,我该如何区分未登录和不允许第三方Cookie之间的区别?它可以是服务器端或客户端。

用户名

我最终要做的是:

摘要:如果没有cookie,请在第一次调用中执行request.session.set_test_cookie()。在这种情况下,请回答“潜在的cookie问题”。在content_script中,如果得到此响应,则进行第二次调用,并使用request.session.test_cookie_worked()测试cookie是否存在。

查看首次调用的函数

if not request.user.is_authenticated():
    if len(request.COOKIES) == 0: 
        # User does not allow third party cookies or cookies are deleted/expired
        request.session.set_test_cookie() # Django function
        return HttpResponse("potential cookie issue")
    else:
        return HttpResponse("not logged in") 
else:
    return HttpResponse("logged in") 
    # would actually continue and do stuff here instead

查看第二次调用的函数

if not request.session.test_cookie_worked(): # Django function
    return HttpResponse("third party cookies not allowed")      
else:
    return HttpResponse("not logged in") 

content_script.js

function got_response(){ 
    if (xmlHttp.readyState == 4){
        if (response_data == "potential cookie issue"){ 
                function got_response2(){ 
                   if (xmlHttp2.readyState == 4){
                        display_response(xmlHttp2.responseText); 
                       /*either not logged in or cookie issue depending on response*/
                    }
                }  
                var xmlHttp2=new XMLHttpRequest();
                xmlHttp2.open("GET", domain+"/second_call/",true);
                xmlHttp2.onreadystatechange = got_response2;
                xmlHttp2.send();
       }
       else{/* not logged in or logged in depending on response*/}
    }
 }

var xmlHttp=new XMLHttpRequest();
xmlHttp.open("POST", "my_site.com/first_call/",true);
xmlHttp.onreadystatechange = got_response;
xmlHttp.send();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Chrome扩展程序和Django:验证是否允许第三方Cookie

来自分类Dev

检查用户是否安装了第三方Chrome扩展程序

来自分类Dev

第三方Cookie和Google OAUTH

来自分类Dev

全屏截图,不带第三方扩展程序(Chrome浏览器)

来自分类Dev

未在Chrome上设置第三方Cookie(Django应用)

来自分类Dev

扩展第三方接口

来自分类Dev

Office for Desktop和第三方身份验证的应用程序

来自分类Dev

OAuthServer和第三方OAuth提供程序

来自分类Dev

安装后允许我的Android应用程序使用第三方扩展程序/插件-低功耗蓝牙

来自分类Dev

Ubuntu 19.10 上的 Chrome 正在阻止所有网站的 cookie 和第三方 cookie

来自分类Dev

如何在Chrome上覆盖“新标签页”页面(没有第三方软件,例如扩展程序)

来自分类Dev

如何在Safari 11.0.3中允许第三方cookie(13604.5.6)

来自分类Dev

如何允许在Safari中使用第三方Cookie或创建解决方法?

来自分类Dev

如何允许第三方扩展我的Java库中的类

来自分类Dev

如何允许第三方扩展我的Java库中的类

来自分类Dev

使用jquery cookie的第三方cookie

来自分类Dev

使用ASP.NET Core Web Api验证第三方Cookie

来自分类Dev

从Chrome 80开始如何处理新的第三方Cookie规则?

来自分类Dev

如何在Chrome中禁用第三方Cookie?

来自分类Dev

允许VS抛出第三方库异常

来自分类Dev

第三方Cookie,以检查浏览器是否默认将其阻止

来自分类Dev

为Android WebView启用第三方Cookie

来自分类Dev

安卓应用程序可以由第三方扩展吗?

来自分类Dev

Django:将第三方应用程序用作Django应用程序

来自分类Dev

在Pelican中安装第三方Markdown扩展

来自分类Dev

伪造第三方库中的扩展方法

来自分类Dev

扩展第三方zend Framework 2模块

来自分类Dev

互联网广告商和第三方Cookie-澄清吗?

来自分类Dev

启用某些域的第三方Cookie和站点数据

Related 相关文章

  1. 1

    Chrome扩展程序和Django:验证是否允许第三方Cookie

  2. 2

    检查用户是否安装了第三方Chrome扩展程序

  3. 3

    第三方Cookie和Google OAUTH

  4. 4

    全屏截图,不带第三方扩展程序(Chrome浏览器)

  5. 5

    未在Chrome上设置第三方Cookie(Django应用)

  6. 6

    扩展第三方接口

  7. 7

    Office for Desktop和第三方身份验证的应用程序

  8. 8

    OAuthServer和第三方OAuth提供程序

  9. 9

    安装后允许我的Android应用程序使用第三方扩展程序/插件-低功耗蓝牙

  10. 10

    Ubuntu 19.10 上的 Chrome 正在阻止所有网站的 cookie 和第三方 cookie

  11. 11

    如何在Chrome上覆盖“新标签页”页面(没有第三方软件,例如扩展程序)

  12. 12

    如何在Safari 11.0.3中允许第三方cookie(13604.5.6)

  13. 13

    如何允许在Safari中使用第三方Cookie或创建解决方法?

  14. 14

    如何允许第三方扩展我的Java库中的类

  15. 15

    如何允许第三方扩展我的Java库中的类

  16. 16

    使用jquery cookie的第三方cookie

  17. 17

    使用ASP.NET Core Web Api验证第三方Cookie

  18. 18

    从Chrome 80开始如何处理新的第三方Cookie规则?

  19. 19

    如何在Chrome中禁用第三方Cookie?

  20. 20

    允许VS抛出第三方库异常

  21. 21

    第三方Cookie,以检查浏览器是否默认将其阻止

  22. 22

    为Android WebView启用第三方Cookie

  23. 23

    安卓应用程序可以由第三方扩展吗?

  24. 24

    Django:将第三方应用程序用作Django应用程序

  25. 25

    在Pelican中安装第三方Markdown扩展

  26. 26

    伪造第三方库中的扩展方法

  27. 27

    扩展第三方zend Framework 2模块

  28. 28

    互联网广告商和第三方Cookie-澄清吗?

  29. 29

    启用某些域的第三方Cookie和站点数据

热门标签

归档