yjmp14/wulingate

[feature-request] add long, secure room id to access room via bookmarked url

Opened this issue · 2 comments

I love the room capability!

To make this even more useful, I'd like to have the possibility to create a "permanent" room with a very long and secure room id and make the room accessible by adding the room id as argument to the url. This way, I could bookmark this one (long) url and connect all my devices in different networks even faster.

I further described the idea in the original snapdrop repo:

"

1. In my personal scenarios when I happen to use Snapdrop, if it was easy for me to share a sharing link to the target peer (i.e. via messenger), I would probably already just have sent the files via the messenger. Also the text sending feature of Snapdrop seems to be less valuable if I could have just used that messenger in the first place.

I agree that this is the case when target peer and sending peer are two different people.

Then again I often want to quickly send a URL or file accross my own devices. I would love to have a url to entry a room instantly to speed up the user flow by one step. This way, I could bookmark this one (long) url and connect all my devices in different networks even faster.

Maybe the two approaches can also be combined:

  1. Whenever a new room is created it has a long and secure roomid that is appended to the url as well.
  2. A share menu is opened to invite peers via a 6-digit code
  3. When the share menu is opened, a 6-digit code is created which can be used to enter the room on other devices.
  4. When entering the room via a 6-digit code, the roomid is transfered and the url is changed accordingly.
  5. Whenever the share menu is closed the 6-digit code is invalidated.
  6. Whenever the share menu is opened again a new 6-digit code is created.
  7. Additionaly, the user can simply share the url to invite other peers to the room

This way we would resolve the conflict of security vs. simplicity mentioned by @yjmp14 in SnapDrop#214 (comment)_
"

To implement this, I can imagine something along the lines of the following:

  • When a room is created, a 6-digit code is created which is valid for 10 minutes (ui shows counter "expires in xx:xx") or until the user closes the pop up
  • The 6-digit code is used to create a second "id_share_room" where peer1 waits for another peer to join
  • When another peer2 joins, peer1 automatically sends its long roomId to peer2
  • peer2 uses the roomId to join the actual room and leaves the "id_share_room"

We would need to implement some ui and some new message types but that would be about it.
What do you think @yjmp14 ?