So, as you all might know, I do not like having a central Account System, and obviously there needs to be ways for Servers to know if the person logging in is actually the person they claim to be.
There is a few ways to achieve this goal without having to put in some central Server that could go down after a few years or “force people to migrate to a new system for no damn reason”…
Don’t have any Auth and let anyone join, which will totally work just fine and you wont get any Griefers.
Just have the Server prompt for a Password whenever you try to log in. Downside here is, this password can easily be leaked, and then everybody needs to adjust to the changed password.
Use Private and Public Keys, so you can send the Server Host your Public Key and add that to the Whitelist, and then you can join just fine. The Keys would be generated by the Launcher ofcourse. If the Key would get leaked (through intentional or malicious hackery means), at least there would be only one member of the Server you would need to ban (or re-validate).
Use the built in Trusted Platform Module (TPM) Chip for extra validation after logging in once with the Key. Then even if some Hacker stole your Key, they could not log into the Server under your Name.
This can be enforced Serverside (if you are an asshole) or Clientside (if you are paranoid), since if you log in with TPM verification it could automatically invalidate the Key for you, so the Server will only accept you logging in from your specific Computer instead of the Key you used from your first login.
There should be some ways to migrate to different Computers or validate more than one Computer, if you really have more than one Gaming Computer.
And yes I am aware not every Computer has a TPM Chip built in, why do you think did i say the word “asshole” a few lines up? XD
Use a Yubikey or similar 2FA Device for Login. Should work similar to the TPM way. Here you can also just tell the Server that this is your way to 2FA without the Host having to configure any Settings or so. Makes migration to other Computers much easier.
Maybe I add some stupid “Verified” Icon to people using this sort of thing. XD
Anyone got other/more Ideas to make Authentication work?
Edit: Oh got other Ideas!
Ask the User a question they have to answer, because this sort of Spam protection at least keeps basic nonhuman Spammers away.
Same Idea would be a Captcha, but I would sure as heck not use the Google ones if I did.