我想在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