Describe the bug
google creates invalid g_state cookies (https://stackoverflow.com/questions/66864766/one-tap-login-g-state-cookie-is-not-parseable-on-http-cookies-simplecookie) which causes aiohttp._cookie_helpers.parse_cookie_header to not match on that key, and then break out and not return any more of the keys, and even worse without any warning.
To Reproduce
- Implement server with route that echos back cookies:
async def echo_cookies(self, req):
# Return the cookie names as parsed by aiohttp
return json_response({
'cookie_names': list(req.cookies.keys()),
'cookies': dict(req.cookies),
})
- Use client to send cookies:
cookie_header = (
'_ga=ga; '
'ajs_anonymous_id=0anonymous; '
'analytics_session_id=session; '
'cookies-analytics=true; '
'cookies-functional=true; '
'cookies-marketing=true; '
'cookies-preferences=true; '
'g_state={"i_l":0,"i_ll":12345,"i_b":"blah"}; '
'analytics_session_id.last_access=1760128947692; '
'landingPageURLRaw=landingPageURLRaw; '
'landingPageURL=landingPageURL; '
'referrerPageURLRaw=; '
'referrerPageURL=; '
'formURLRaw=formURLRaw; '
'formURL=formURL; '
'fbnAuthExpressCheckout=fbnAuthExpressCheckout; '
'is_express_checkout=1; '
)
resp = await self.client.get('/echo-cookies', headers={'Cookie': cookie_header})
self.assertEqual(resp.status, 200)
data = await resp.json()
note that everything after g_state is not returned.
Expected behavior
Given that presumably chrome can parse this, aiohttp should as well
Logs/tracebacks
g_state and everything after it is not returned
Python Version
aiohttp Version
Name: aiohttp
Version: 3.12.15
Summary: Async http client/server framework (asyncio)
Home-page: https://github.com/aio-libs/aiohttp
Author:
Author-email:
License: Apache-2.0 AND MIT
Location: /Users/alexmohr/.local/share/uv/venv/fbn.com/api/commodities/lib/python3.11/site-packages
Requires: aiohappyeyeballs, aiosignal, attrs, frozenlist, multidict, propcache, yarl
multidict Version
Name: multidict
Version: 6.6.4
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
License: Apache License 2.0
propcache Version
Name: propcache
Version: 0.3.2
Summary: Accelerated property cache
Home-page: https://github.com/aio-libs/propcache
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
License: Apache-2.0
yarl Version
Name: yarl
Version: 1.20.1
Summary: Yet another URL library
Home-page: https://github.com/aio-libs/yarl
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
License: Apache-2.0
OS
OSX 26.0.1 (25A362)
Related component
Server
Additional context
No response
Code of Conduct
Describe the bug
google creates invalid g_state cookies (https://stackoverflow.com/questions/66864766/one-tap-login-g-state-cookie-is-not-parseable-on-http-cookies-simplecookie) which causes aiohttp._cookie_helpers.parse_cookie_header to not match on that key, and then break out and not return any more of the keys, and even worse without any warning.
To Reproduce
note that everything after g_state is not returned.
Expected behavior
Given that presumably chrome can parse this, aiohttp should as well
Logs/tracebacks
Python Version
Python 3.11.1aiohttp Version
multidict Version
propcache Version
yarl Version
OS
OSX 26.0.1 (25A362)
Related component
Server
Additional context
No response
Code of Conduct