element-web icon indicating copy to clipboard operation
element-web copied to clipboard

Support for multiple matrix accounts

Open richvdh opened this issue 7 years ago • 199 comments

richvdh avatar Sep 20 '16 20:09 richvdh

This is interesting for me because we have a company HS which we want to use for channels private to company business and I also want to be logged into channels in a personal context (so if I get fired I can stay in these channels). A colleague of mine has suggested that if we adopt matrix he might keep multiple full riot.im instances because this feature is missing.

cjdelisle avatar Mar 16 '17 16:03 cjdelisle

showerthoughts: if we have multiple account support, what are security implications? for example, if one HS is in internal network without federation and second HS is federated (ergo public) and both meet in one (web) client, can motivated attacker gain somekind of access to internal HS with xss from public HS? is vector-im/element-web#1977 related? seems like that security risks are similar when, for example, use same irc client for internal and external networks.

4nd3r avatar Apr 15 '17 11:04 4nd3r

Supporting multiple HSs from a single app is a good feature though so it should not be blocked because of security concerns which can (should) also be mitigated by CSP (see vector-im/element-web#3632).

cjdelisle avatar Apr 15 '17 11:04 cjdelisle

for the web-version I can workaround with hosting the web-client under multiple domain-names. but for the iOS/desktop version that is not possible, although it should technically be easy to simulate the "multiple-domain-names" behavior.

ansiwen avatar Jul 19 '17 12:07 ansiwen

Desktop version it is possible by starting it with --profile=newProfile1 replacing newProfile1 for each new profile.

t3chguy avatar Jul 19 '17 12:07 t3chguy

For Android app we can use App Cloner app to clone Riot application and sign in to different account in copy. In my phone now works normally 3 Riot copies together with different Matrix accounts. Maybe iOS have same feature.

As example for Electron app - we can see http://rambox.pro/ project that have separate tabs for different messaging apps, also it provide to run multiple Riot instances.

MurzNN avatar Jul 20 '17 06:07 MurzNN

I imagine peoples will have multiple account like they do with email (one for job, university, personal, secret ..). Having a HS is a trade off without multiple sign in. I don't want to use my account on the university HS to chat with my mum... I also want to be able to disconnect from my job account when I'm in vacation!

gagarine avatar Oct 03 '17 12:10 gagarine

Hmm, will wait wait for this feature...

Simon0Harms avatar Oct 11 '18 21:10 Simon0Harms

Hmm, will wait wait for this feature...

Me too. I see there's some demand for this feature. Maybe it's enough to have a milestone for this feature?

ghost avatar Nov 23 '18 12:11 ghost

Same here. I have set up a server for my workplace and I have a personal account too. Not a fan of exporting keys and reimporting them, just to chat on a different server

NicholasHaven avatar Jan 07 '19 15:01 NicholasHaven

@NicholasHaven as a temporary workaround you can always use two separate instances of Riot such as https://riot.im/app and https://riot.swedneck.xyz or https://riot.raim.ist

aaronraimist avatar Jan 07 '19 18:01 aaronraimist

Another workaround is to use Rambox app or Firefox Containers, that isolates tab data, so we can use one Riot url with different accounts in separate tabs of one app.

MurzNN avatar Jan 08 '19 05:01 MurzNN

This would be very much wanted indeed

dvoijen avatar Jan 24 '19 09:01 dvoijen

Absolutely crucial, needed immediately

xznhj8129 avatar Jan 28 '19 00:01 xznhj8129

@snow-frog if you are willing to pay for it, contact the team, otherwise you’ll need to use a workaround like https://github.com/vector-im/riot-web/issues/2320#issuecomment-452037153 for now

aaronraimist avatar Jan 28 '19 00:01 aaronraimist

This is interesting for me because we have a company HS which we want to use for channels private to company business and I also want to be logged into channels in a personal context (so if I get fired I can stay in these channels). A colleague of mine has suggested that if we adopt matrix he might keep multiple full riot.im instances because this feature is missing.

This has been my strategy so far. Running more than five instances now.

martindale avatar Feb 27 '19 07:02 martindale

matrix.org is hiccuping today so I decided to try my own advice of hopping onto another server. It totally worked.

I also had to think about it though, and it distracted me from what I was doing. Adding a convenient user-switching UI to riot-web would go a long way towards softening the blow when a homeserver is down.

Having this feature would encourage people to use multiple accounts, which is good for the fediverse.

alexgleason avatar Apr 20 '19 17:04 alexgleason

This is one of those features which would certainly give most XMPP clients (like Pidgin) an advantage over Riot, particularly in work environments where personal identities are separate from work ones. This feature would certainly make Matrix a more attractive option when considering what to use for a new server. For most it's going to be a deal breaker so they're unlikely to pay for such a basic ability if it isn't there in the first place.

Running multiple instances of Riot is a pretty ugly hack. This would use double the resources and would be a pretty horrid experience on a mobile platform (let alone battery usage) issues.

dngray avatar Apr 21 '19 06:04 dngray

What is the best way to run multiple accounts without E2EE keys relying on browser if I don't want to add the Riot Debian repository again? Luckily my laptop would be able to run multiple Riots.

I am running Riot from Flatpak (it's in Flathub regardless of https://github.com/vector-im/riot-web/issues/3718, but in unofficial state I guess) and I thought that Snap (https://github.com/vector-im/riot-web/issues/6822) could be the other one, but there is only FluffyChat that doesn't support E2EE.

This is one of those features which would certainly give most XMPP clients (like Pidgin)...

I agree with you about everything else than Pidgin which performs all chat protocols horribly and is especially bad with XMPP. I would recommend Gajim or Dino instead, they support multiple accounts (I wonder are there even many XMPP clients that don't) while supporting modern XEPs being pleasant to use together with Conversations on Android.

Mikaela avatar Apr 25 '19 15:04 Mikaela

I agree with you about everything else than Pidgin which performs all chat protocols horribly and is especially bad with XMPP.

That is fair criticism. I was getting at the way that Pidgin handles multiple accounts. Ie you can have accounts on all servers connected, some, none, one, etc.

I would recommend Gajim or Dino instead, they support multiple accounts (I wonder are there even many XMPP clients that don't) while supporting modern XEPs being pleasant to use together with Conversations on Android.

Conversations on Android looks to be about the only good XMPP client. Gajim uses PyGTK which is unmaintained as far as I can see: https://en.wikipedia.org/wiki/PyGTK and at the time of writing the Gajim website is down, so I can't checkup on the project.

Dino looks like a much more reasonable option, (interface wise) of course the issue around voice/video support is still there. Gajim does not support it on Windows, and Dino doesn't support it at all. Conversations only uses it for file transfer.

dngray avatar Jul 25 '19 07:07 dngray

Gajim website is down

So it looks to be back up. The voice/video features (even on Linux) are unmaintained. It looks to be as if farstream and gstreamer-plugins-bad are both unmaintained. I doubt anyone cares about these days as they only ever worked on Linux anyway.

Back to the topic at hand. Another use case might be that you use an account with your phone number and the global identity server for people that know you in real life, work, friends, family etc.

Then you have a separate account for people online. I don't make a habit of giving my phone number out to people on the Internet. This is because it is very difficult to control spam, and unsolicited calls and sms to your number.

At the same time I'm not keen on things like RCS, as that has no end-to-end encryption or Signal because it is centralized and no federation, meaning that there really aren't too many advantages over other services of it's kind.

So ideally at some point it would be great if Riot Desktop/Web and RiotX allowed for multiple accounts on different servers to be connected at the same time.

dngray avatar Jul 28 '19 05:07 dngray

At fist easy step for implement multi-accounting on Riot-web may be Slack-Discord style global user switcher, that do full app reload with new user identity.

So on Riot-side we must implement separate local storages for multiple accounts (bind each storage to mxid), select needed storage on startup for all later operations, and easy app full-reloader on user switch event.

This will be much better, that current way, where we must do full logout and new login for switch account.

And via next steps we will can implement full-featured multi-account interface, when rooms are displayed from all configured accounts in one interface.

What do you think about this idea?

MurzNN avatar Aug 01 '19 09:08 MurzNN

At fist easy step for implement multi-accounting on Riot-web may be Slack-Discord style global user switcher, that do full app reload with new user identity.

So on Riot-side we must implement separate local storages for multiple accounts (bind each storage to mxid), select needed storage on startup for all later operations, and easy app full-reloader on user switch event.

Yes, seems like a reasonable stepping stone towards a full multi-account setup that blends the accounts together, as you'd need to set up storage for all the underlying accounts anyway.

jryans avatar Aug 01 '19 09:08 jryans

Any progress here? I love using Riot, but the missing multi account support is increasingly annoying. :/

r4dh4l avatar Dec 07 '19 12:12 r4dh4l

Just wanted to mention a workaround you can use until this is implemented - Firefox containers. It worked very well for me for multiple riot.im clients in parallel.

shmerl avatar Dec 07 '19 23:12 shmerl

Just wanted to mention a workaround you can use until this is implemented - Firefox containers. It worked very well for me for multiple riot.im clients in parallel.

Thx, but I'm used to clear all browser data closing Firefox so that is no workaround for me. In addition using e2e encryption is not something that is comfortable with the Riot WebApp (key backup and import procedure).

I would be interested why the multi account feature is such a problem (seems like it is one because the issue exists since 2016 and is "priority1").

r4dh4l avatar Dec 27 '19 11:12 r4dh4l

The entire app assumes you're using one account and needs a major refactoring to support multiple accounts. Currently it's a highly requested feature, but so is being able to move your account between homeservers. Weirdly, moving your account between homeservers is looking easier than multiaccount.

turt2live avatar Dec 27 '19 16:12 turt2live

Thy, but I'm used to clear all browser data closing Firefox so that is no workaround for me

According to the documentation, clearing all data option doesn't (and shouldn't) remove your containers data. If it's the case, I strongly encourage you to report that issue upstream.

dannycolin avatar Dec 27 '19 17:12 dannycolin

The entire app assumes you're using one account and needs a major refactoring to support multiple accounts. Currently it's a highly requested feature, but so is being able to move your account between homeservers. Weirdly, moving your account between homeservers is looking easier than multiaccount.

Thx for the explanation.

Thy, but I'm used to clear all browser data closing Firefox so that is no workaround for me

According to the documentation, clearing all data option doesn't (and shouldn't) remove your containers data. If it's the case, I strongly encourage you to report that issue upstream.

Thank you as well, didn't notice this. Maybe I'm just not used to use web apps. For some reason it feels more "solid" for me to use dedicated programs.

r4dh4l avatar Dec 27 '19 19:12 r4dh4l

The entire app assumes you're using one account and needs a major refactoring to support multiple accounts. Currently it's a highly requested feature, but so is being able to move your account between homeservers. Weirdly, moving your account between homeservers is looking easier than multiaccount.

Indeed, I would have assumed that request not to be so difficult to answer... We'll be patient then.

Thatoo avatar Jan 23 '20 14:01 Thatoo