DJango碰到samesite无法登录Chrome(解决DJango无法获取新版本Chrom80的cookie问题)

想要了解更多干货,欢迎大家关注我的微信公众号:iProgram爱编程

解决Django跨域问题及DJango无法获取新版本Chrome80的cookie问题:

第一步:使用pip安装django-cors-headers

pip install django-cors-headers

第二步: 添加到setting的app中

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

第三步: 添加中间件(注意添加的顺序)

MIDDLEWARE = [  
    ...
    'corsheaders.middleware.CorsMiddleware',
    'django.middleware.common.CommonMiddleware',
    ...

第四步: setting中添加配置:


CORS_ALLOW_CREDENTIALS = True
CORS_ORIGIN_ALLOW_ALL = True
CORS_ORIGIN_WHITELIST = ()

CORS_ALLOW_METHODS = (
    'DELETE',
    'GET',
    'OPTIONS',
    'PATCH',
    'POST',
    'PUT',
    'VIEW',
)

CORS_ALLOW_HEADERS = (
    'accept',
    'accept-encoding',
    'authorization',
    'content-type',
    'dnt',
    'origin',
    'user-agent',
    'x-csrftoken',
    'x-requested-with',
    'X-CSRFToken'
)

下面开始解决谷歌新版本chrome80 默认SameSite导致跨域问题:

第五步:setting中添加配置

SESSION_COOKIE_SAMESITE = None  # response header set-cookie:samesite=lax  Default: 'Lax'
CSRF_COOKIE_SAMESITE = None

参考:

https://blog.csdn.net/m0_37995876/article/details/104954671

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。