0xsequence / sequence.js

Sequence: a modular web3 stack and smart wallet for Ethereum chains
https://docs.sequence.xyz
Other
305 stars 59 forks source link

Revoke/terminate session on disconnect #355

Open Quicksaver opened 1 year ago

Quicksaver commented 1 year ago

Is there a way to completely close a session on disconnect? The wallet.disconnect(); method does not appear to do this, it only literally disconnects the wallet from the site.

We'd like for the user to be able to choose another service/account every time they click on connect if they so choose. Since "this" session is only relative for "this" site, it would make sense. Right now if I connect with x email, disconnect, then try to reconnect, I am still logged in with x email, but if I'd like to use y email, I need to logout inside the Sequence modal.

pkieltyka commented 1 year ago

We've discussed this -- and it might be confusing to the user to have something like a wallet.signout() method which prompt them to sign out of their wallet.

Instead, we're thinking to have multi-profiles/accounts support for a wallet, in which case a user can be signed into multiple wallets/profiles at the same time. Lmk if that would work for you?

Btw, glad to see all your progress with Sequence :) that is awesome. Which project are you building btw?

Quicksaver commented 1 year ago

We've discussed this -- and it might be confusing to the user to have something like a wallet.signout() method which prompt them to sign out of their wallet.

Hmm, I don't see how it would be confusing. Why a prompt even? The idea is that the site is fully integrated with Sequence. If a user clicks "Log out" on the site, then they expect to be fully logged out, even without confirmation; for sure I would. This goes hand-in-hand with the expected account flow, in every single site if I log out, I don't expect the site to remember my account afterwards (not counting "remember my username" kind of options)

Instead, we're thinking to have multi-profiles/accounts support for a wallet, in which case a user can be signed into multiple wallets/profiles at the same time. Lmk if that would work for you?

Not the goal of this issue (although could be useful, but would need a total rethink of... everything). The goal here is for the user to disconnect from Sequence, then when connecting again it should connect from scratch.

Think of a shared computer. If I login in a friend's computer, then disconnect from the site, I don't want my friend to click login again and Sequence automatically remember my account. For most users, especially web2, logging off from the site should be a full log off; there's no concept of Sequence as a standalone service that they must manage, the goal is for the site + Sequence to be a single thing. Most users will never know or even think of having to go to Sequence to log out there as well.

Btw, glad to see all your progress with Sequence :) that is awesome. Which project are you building btw?

https://www.realfevr.com/ 😁

Quicksaver commented 1 year ago

Same way that if I login with google in a site, then log off, I don't really go to google.com and log out there as well (nevermind that I should 😄 ), because if I try to login again on that site, it will still ask me which account to use to login, regardless if I'm logged in to google itself already.