this post was submitted on 19 Mar 2025
44 points (94.0% liked)

Voyager

6206 readers
263 users here now

The official lemmy community for Voyager, an open source, mobile-first client for lemmy.

Download on App Store

Download on Play Store

Use as a Web App

Download on F-Droid

Rules

  1. Be nice.
  2. lemmy.world instance policy

Sponsor development! 👇

Number of sponsors badge

💙

founded 2 years ago
MODERATORS
 

I keep hearing of people who have used Lemmy for a few days or a few weeks and want to start using a mobile version – often Voyager.

They open Voyager for the first time, and get a screen with a button for logging in. They get a choice for which Lemmy instance to join, but no place for entering their existing username or password.

I've told them that "in the first screen there is a button that is very difficult to notice, allowing you to use a pre-existing Lemmy username. Find that semi-hidden button, click it, and you can login."

It is of course a working workaround to pre-emptively tell people that the button exists, is just very well hidden, and needs to be clicked by most people who download Voyager. But still, it would be cool if the screen for new users could be altered so that the ability to log in with a pre-existing username was equally visible as the choice to create a new account!

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 3 points 2 days ago* (last edited 2 days ago) (1 children)

I’m not sure how that would work. When you sign in you can use your username or email. So if you type [email protected] there is no way to know if you’re trying to login to the instance at domain.com or login with your email ending in domain.com, to some other instance.

Edit: and it can’t just assume and try domain.com first, because then if it’s not what the user intended then you just sent your login credentials accidentally to a random domain 🙃

[–] [email protected] 1 points 2 days ago (1 children)

You would only be able to login this way with your username. If you by mistake use your email, then it simply doesn’t resolve to a Lemmy server and the login fails.

[email protected] would simply fail, because that Lemmy instance does not exist.

[–] [email protected] 4 points 2 days ago (1 children)

But what if it does exist? But your have an email server on the same domain? Or what if that domain is being malicious and masquerading as a Lemmy instance to steal your credentials?

[–] [email protected] 1 points 2 days ago (1 children)

It doesn’t matter if there’s an email server or not.

I am not logging in with the credentials “[email protected]”. I am telling Voyager that I want to log into “Lemmy.wtf” with my user “Meldrik”. Before I type a password, the app will check if “Lemmy.wtf” exists and maybe even check if there is in fact a user named “Meldrik”. If all are true, then it will ask for password.

Something like that. I don’t know how Voyager works 😁

[–] [email protected] 8 points 2 days ago (1 children)

that’s still making assumptions about where you want to login to. The fact is that you can login, today, to Lemmy.world with “username” of “[email protected]” assuming Lemmy.wtf has an email server setup. And it’s not a safe assumption because users DO have email addresses saved in their passwords manager as a username for whatever random instance, and there should be a 0% chance of sending user credentials to the wrong domain.

I can’t just trust that domain to say they’re a Lemmy instance, and there is a user with that username on the domain. That’s trivial to exploit.

[–] [email protected] 1 points 2 days ago (1 children)

It’s true you can login with your email, instead of your username. But what I am saying is, in Voyager, it should only ask for your username+instance ([email protected]).

If I by mistake type my email: [email protected] it will obviously fail, right? Because there’s no Lemmy server at that domain.

You already validate Lemmy servers in Voyager, right? So if “[email protected]” doesn’t match a Lemmy server, an error would show.

[–] [email protected] 3 points 2 days ago (1 children)

I validate lemmy servers by asking the server if it's a lemmy server. If the protonmail.com is malicious and says, "sure I'm a lemmy server" then credentials would be sent to it, which is not good

[–] [email protected] 1 points 2 days ago* (last edited 2 days ago) (1 children)

If I typed the wrong domain here and it turned out it’s a malicious server pretending to be a Lemmy server, then what happens?

Also, wouldn’t it be highly unlikely that the users email domain is malicious?

[–] [email protected] 4 points 1 day ago (1 children)

You explicitly select the instance, so there is no question of what domain Voyager will contact. Also, on the next screen where you enter credentials, you see the domain and its icon, and you can click to open in the browser to further confirm that you are connecting to the correct instance (if you accidentally select the wrong one)

[–] [email protected] 1 points 1 day ago (1 children)

I can also enter the instance name myself on that screen and then it checks if it’s a Lemmy server, right?

So if there was a “login with username”, you would type your username@instance, then Voyager would check the domain and show the next page you are talking about, with a pre-filled username.

[–] [email protected] 4 points 1 day ago* (last edited 1 day ago) (1 children)

No, that wouldn't work for aforementioned reasons.

Edit: Also even if you did ignore the security concerns, this approach wouldn't work at all with OAuth flow that is planned. https://github.com/LemmyNet/lemmy/issues/1368

[–] [email protected] 1 points 1 day ago

So I can’t type in a domain manually?