Skip to content

Commit 0ad753c

Browse files
authored
Merge pull request #644 from Wauplin/622-fix-ever-growing-session-cookie
Fix ever-growing session cookie (starlette integration)
2 parents 174248e + 01efd15 commit 0ad753c

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

authlib/integrations/starlette_client/integration.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,15 @@ async def get_state_data(self, session: Optional[Dict[str, Any]], state: str) ->
3434
return None
3535

3636
async def set_state_data(self, session: Optional[Dict[str, Any]], state: str, data: Any):
37-
key = f'_state_{self.name}_{state}'
37+
key_prefix = f'_state_{self.name}_'
38+
key = f'{key_prefix}{state}'
3839
if self.cache:
3940
await self.cache.set(key, json.dumps({'data': data}), self.expires_in)
4041
elif session is not None:
42+
# clear old state data to avoid session size growing
43+
for key in list(session.keys()):
44+
if key.startswith(key_prefix):
45+
session.pop(key)
4146
now = time.time()
4247
session[key] = {'data': data, 'exp': now + self.expires_in}
4348

0 commit comments

Comments
 (0)