如何在set_cookie函数django中添加samesite=None



我想在set_cookie function中将samesite属性添加为None

这是我调用set_cookie function的代码

redirect = HttpResponseRedirect( '/m/' )
redirect.set_cookie( 'access_token', access_token, max_age=60 * 60 )

这是我设置cookie 的功能

def set_cookie(self, key, value='', max_age=None, expires=None, path='/',
domain=None, secure=False, httponly=False):
self.cookies[key] = value
if expires is not None:
if isinstance(expires, datetime.datetime):
if timezone.is_aware(expires):
expires = timezone.make_naive(expires, timezone.utc)
delta = expires - expires.utcnow()
delta = delta + datetime.timedelta(seconds=1)
expires = None
max_age = max(0, delta.days * 86400 + delta.seconds)
else:
self.cookies[key]['expires'] = expires
else:
self.cookies[key]['expires'] = ''
if max_age is not None:
self.cookies[key]['max-age'] = max_age
# IE requires expires, so set it if hasn't been already.
if not expires:
self.cookies[key]['expires'] = cookie_date(time.time() +
max_age)
if path is not None:
self.cookies[key]['path'] = path
if domain is not None:
self.cookies[key]['domain'] = domain
if secure:
self.cookies[key]['secure'] = True
if httponly:
self.cookies[key]['httponly'] = True

如果使用django2.x或更旧版本,则可以使用此库更改标志:https://pypi.org/project/django-cookies-samesite/

如果你使用的是django3.x,它应该是内置的

您可以在HTTP响应上使用set_cookie('name', 'value')

类似return HttpResponse("hi").set_cookie('name', 'Aniket')

如果你要使用render((,那么

response = render(request,'index.html',data)
response.set_cookie('name','value')
return response

最新更新