diff options
author | Hanadi <hanadi.tamimi@gmail.com> | 2023-09-13 14:33:39 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-13 08:33:39 -0400 |
commit | 7afb5e041004bab8b0aaf7909ce3c7a9ef80077f (patch) | |
tree | 567e71b3729378fdb41cba6b331e570f58c6459c /synapse/handlers/device.py | |
parent | Use StrCollection in additional places. (#16301) (diff) | |
download | synapse-7afb5e041004bab8b0aaf7909ce3c7a9ef80077f.tar.xz |
Fix using dehydrated devices (MSC2697) & refresh tokens (#16288)
Refresh tokens were not correctly moved to the rehydrated device (similar to how the access token is currently handled). This resulted in invalid refresh tokens after rehydration.
Diffstat (limited to 'synapse/handlers/device.py')
-rw-r--r-- | synapse/handlers/device.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/synapse/handlers/device.py b/synapse/handlers/device.py index e2ae3da67e..0d3d5ebc86 100644 --- a/synapse/handlers/device.py +++ b/synapse/handlers/device.py @@ -758,12 +758,13 @@ class DeviceHandler(DeviceWorkerHandler): # If the dehydrated device was successfully deleted (the device ID # matched the stored dehydrated device), then modify the access - # token to use the dehydrated device's ID and copy the old device - # display name to the dehydrated device, and destroy the old device - # ID + # token and refresh token to use the dehydrated device's ID and + # copy the old device display name to the dehydrated device, + # and destroy the old device ID old_device_id = await self.store.set_device_for_access_token( access_token, device_id ) + await self.store.set_device_for_refresh_token(user_id, old_device_id, device_id) old_device = await self.store.get_device(user_id, old_device_id) if old_device is None: raise errors.NotFoundError() |