This is extremely useful for iOS devices where a PWA's session storage
is deleted every time it's minimised, and it's also useful for people
having multiple tabs open.
We do this so we can persist the login info to local storage, but
still keep the encryption key safe.
This version will fails if you clear the session storage. This will be
fixed in the next commit.