gpt4 book ai didi

python - Webapp2 Python set_cookie 不支持同站 cookie?

转载 作者:行者123 更新时间:2023-12-03 20:22:49 27 4
gpt4 key购买 nike

webapp2 documentation没有提到设置 SameSite cookie 的属性,它似乎建立在来自 WebOB 的响应处理程序上,我检查了 webOB 文档页面,它清楚地显示了 'SameSite' flag as an accepted cookie parameter

尽管如此,我还是尝试在 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', ...但我希望我可以使用 self.response.set_cookie遵循 webapp2 文档

最佳答案

Samesitewebob 1.8 中引入但 App Engine 标准环境 SDK 附带 1.1.1 and 1.2.3作为内置库。
你可以试试 vendoring在最近的 webob看看这是否覆盖了内置版本。
曾经的版本webob支持samesite已安装,一个 samesite关键字参数可以传递给 Response.set_cookie

class MyHandler(webapp2.RequestHandler):
def get(self):
self.response.set_cookie('cookie-name', value='42', samesite='lax')
此示例应用程序集 samesite=strictwebapp2_extras.sessions 生成的 session cookie 上,假设底层 webob 包支持它。
import webapp2
from webapp2_extras import sessions


class HelloHandler(webapp2.RequestHandler):
def dispatch(self):
self.session_store = sessions.get_store(request=self.request)
try:
super(HelloHandler, self).dispatch()
finally:
self.session_store.save_sessions(self.response)

@webapp2.cached_property
def session(self):
return self.session_store.get_session()

def get(self):
self.session['hello'] = 'world'
self.response.headers['content-type'] = 'text/plain'
self.response.write('Hello world')


webapp2_config = {
'webapp2_extras.sessions': {
'secret_key': 's3cr3t',
'cookie_args':{'samesite': 'strict'}
},
}

application = webapp2.WSGIApplication([
webapp2.Route(r'/', handler=HelloHandler),
],
config=webapp2_config)
回复的 set-cookie标题是
session=eyJoZWxsbyI6IndvcmxkIn0=|1595151290|09b22484901689e6eb0411792c8732ef134d2b66; Path=/; SameSite=strict

关于python - Webapp2 Python set_cookie 不支持同站 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55548528/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com