Webapp2 Python set_cookie不支持samesite cookie?

时间:2019-04-06 11:16:11

标签: python google-app-engine cookies webapp2 webob

webapp2 documentation中,没有提及为cookie设置SameSite属性,它似乎是基于WebOB的响应处理程序,我检查了webOB doc页面,它清楚地显示了{{3 }}

尽管如此,我还是尝试在set cookie中进行设置:

self.response.set_cookie(name, secure_cookie, path='/', secure=True,
httponly=True, samesite='lax', expires=expireDate)

但是我收到以下错误:

TypeError: set_cookie() got an unexpected keyword argument 'samesite'

我知道有人可以使用self.response.headers.add_header('Set-Cookie', ...,但我希望我可以在webapp2文档之后使用self.response.set_cookie

2 个答案:

答案 0 :(得分:1)

Samesite是在webob 1.8中引入的,但App Engine标准环境SDK随1.1.1 and 1.2.3一起作为内置库提供。

您可以在较新的webob中尝试vendoring,以查看它是否覆盖了内置版本。

答案 1 :(得分:0)

我解决了标题更改问题,而没有安装任何外部库。只需在设置cookie后使用此功能:

def AddSameSiteToCookies(self):
    for index, header in enumerate(self.response.headers._items):
        if header[0] == "Set-Cookie" and "SameSite" not in header[1]:
            temp = list(header)
            temp[1] = temp[1].replace("Path=", "SameSite=Lax; Path=")
            self.response.headers._items[index] = tuple(temp)